我正在使用Python测量数据样本的中位数和百分位数.
import numpy as np
xmedian=np.median(data)
x25=np.percentile(data, 25)
x75=np.percentile(data, 75)
在测量中位数之前,我是否必须在数据上使用np.sort()函数?
解决方法:
根据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