5

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

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

np.sort()在测量中位数之前,我是否必须对我的数据使用该函数?

4

1 回答 1

8

根据 的文档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
于 2013-06-01T11:36:57.197 回答