在使用numpy.median之前先对数据进行排序

7

我正在使用Python对数据样本进行中位数和百分位数的测量。

import numpy as np
xmedian=np.median(data)
x25=np.percentile(data, 25)
x75=np.percentile(data, 75)

在测量中位数之前,我是否需要使用np.sort()函数对我的数据进行排序?

1个回答

12
根据numpy.median的文档,您在将数据提供给函数之前不必手动对其进行排序,因为它会在内部自行完成。查看函数源代码并尝试理解其工作原理实际上是非常好的实践。
下面是一个示例,证明事先排序是不必要的:
In [1]: import numpy as np

In [2]: data = np.array([[ 10, 23,  1,  4,  5],
   ...:                  [  2, 12,  5, 22, 14]])

In [3]: median = np.median(data)  # Median of unsorted data

In [4]: median
Out[4]: 7.5

In [5]: data.sort()  # Sorting data

In [6]: median_sorted = np.median(data.ravel())  # Median of the flattened array

In [7]: median_sorted
Out[7]: 7.5

In [8]: median == median_sorted  # Check that they are equal
Out[8]: True

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接