当前位置: 首页 > 知识库问答 >
问题:

如何在python中找到列表的中位数[已关闭]

阎兴为
2023-03-14

这个问题是由打字错误或无法再复制的问题引起的。虽然这里可能有类似的问题,但这个问题的解决方式不太可能对未来的读者有所帮助。

我正在试图找到列表的中间值。我试过两种方法,但都不管用(我已经导入了我需要的东西,列表就在那里)。自拍是列表的名称

def median():
    return numpy.median(numpy.array(selfies))

这就是错误

ret = umr_sum(arr, axis, dtype, out, keepdims)

TypeError:无法对灵活类型执行reduce

另一种方法是

def median():
    med = statistics.median(selfies)
    return med

错误是

返回(数据[i-1]数据[i])/2

TypeError:不支持/:“str”和“int”的操作数类型

提前感谢您

共有2个答案

白宏大
2023-03-14

使用. sorted()或. sorted()根据您想要的方式对列表进行排序,然后检索list[math.floor(len(list)/2)]。

如果您不需要对其进行排序,而只需要中间值,请使用

list[math.floor(len(list)/2)].
杜诚
2023-03-14

你好,用户9123,

此模块提供了计算数值(实值)数据的数理统计的函数。。

注除非另有明确说明,否则这些函数支持int、float、decimal。小数和分数。分数。其他类型的行为(无论是否在数字塔中)目前不受支持。混合类型也是未定义的和依赖于实现的。如果您的输入数据由混合类型组成,您可以使用map()来确保一致的结果,例如map(float,input_data)。

当您将此函数用于字符串时,因此它在某些时候无法正常工作,因此最好我建议您使用自定义函数。我在下面的代码中给出了解决方案。

statistics.median(data)

使用常见的“中间值”方法返回数值数据的中位数(中间值)。如果数据为空,则会出现统计错误。数据可以是序列或迭代器。

中值是对中心位置的稳健度量,受数据中异常值的影响较小。当数据点的数量为奇数时,返回中间数据点:

如果您将此函数用于数值,请尝试下面的代码,

def getMedian(numericValues):
  theValues = sorted(numericValues)

  if len(theValues) % 2 == 1:
    return theValues[(len(theValues)+1)/2-1]
  else:
    lower = theValues[len(theValues)/2-1]
    upper = theValues[len(theValues)/2]
    return (float(lower + upper)) / 2 


print getMedian([0,1,2,3,4,5]) # output = 2.5

如果你对字符串使用中值函数,那么试试下面的代码,

def medianFind(mystring):
    return mystring[(len(mystring)-1)/2]  #len returns the length of the string

print medianFind("vmr")  #prints m

希望我的回答有帮助。< br >如有任何疑问,请留言。

 类似资料:
  • 问题内容: 我有以下sql查询,该查询提供了按月,周和日分组的总h_time。相反,我想要月,周和日的h_time中位数。如何在Oracle SQL中做到这一点? 输出: 问题答案: 您的问题可能出在DATE类型携带的时间部分(即使您未明确设置它)。 要摆脱它,您可以使用trunc函数。 代替: 经过: 和: 经过:

  • 我的老师想让我通过迭代找到用户10个输入的中位数。 这就是我使用迭代来查找总和,奇数数,最大值和质数数的方式。但我一直坚持要找到中位数。

  • 问题内容: 我想对数字求和,以便得到列表。 我尝试了以下方法: 问题答案: 如果你要对像这样的数组做大量的数值工作,我建议使用,它带有一个累加和函数: 在这种情况下,Numpy通常比纯python更快,请参阅与@Ashwini的accumu比较: 但是,当然,如果这是你唯一使用numpy的地方,则可能不值得依赖它。

  • 问题内容: 这似乎是一个非常简单的问题,但是我正在寻找一种尚可理解的简短而甜蜜的方法(这不是代码高尔夫)。 给定一个字符串列表,找到最短字符串的最简单方法是什么? 对我来说最明显的方式大致是: 但这似乎是很多解决此问题的代码(至少在python中)。 问题答案: 该函数具有一个可选参数,可让您指定一个函数来确定每个项目的“排序值”。我们只是需要将其设置为的功能来获得最短的价值:

  • 问题内容: 我有一个列表列表,每个列表都有一个重复序列。我正在尝试计算列表中重复整数序列的长度: 哪个会返回: 任何建议或技巧都将受到欢迎。我现在正在尝试使用re.compile来解决这个问题,但是它不太正确。 问题答案: 通过迭代2到一半序列长度之间的猜测来猜测序列长度。如果未发现任何模式,则默认返回1。 得到(如预期): 根据要求,此替代方法可提供最长的重复序列。因此,它将为list_b返回4

  • 问题内容: 我有一个词表 我想将每个列表项与一个字符串进行比较,并且输出应该是最相似的词。示例:如果是,则是最相似的词。如何在python中执行此操作?通常,我在清单中所用的单词可以很好地区分。 问题答案: 使用difflib: 正如您从仔细阅读源代码可以看到的那样,“接近”匹配项的排序从最佳到最差。