鉴于:

x = [1.23, 2.0, 3.45, 4.1]

然后:
middle = numpy.median(x)

如果列表 x 的大小为奇数,我可以使用 x[x.index(middle)-1]x[x.index(middle)+1] 来获取中间任一侧的两个数字。这在上述情况下不起作用,因为 x 中不存在中位数。是否有标准方法可以处理偶数大小和奇数大小的列表?

最佳答案

假设排序的输入列表的长度是 N 那么在我看来你想要访问元素 N/2-1(N+1)/2(假设整数除法),即,

[1.23, 2.0, 3.45, 4.1] => N = 4 thus N/2-1 = 1 and (N+1)/2 = 2

[1.23, 2.0, 3.45, 4.1, 5.6] => N = 5 thus N/2-1 = 1 and (N+1)/2 = 3

关于python - 获取中位数两侧的两个数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33002876/

10-12 20:35