查找 numpy 数组中每个数据点的百分位数
Finding percentile for each data point in a numpy array
我有下面一行代码:
threshold_value = numpy.percentile(a, q)
其中 a
是我的数据,q
设置为 95 让我们说。
假设我将 q
更改为 90,我将得到不同的阈值。
那么对于 a
中的每个数据点,我想计算 q 的什么值会产生 threshold_value
等于 a。所以我感兴趣的可能是 a
中的一个数据点低于 threshold_value,但我想要一个百分位数值来查看它的确切位置。当我有一个测试数据集时,我将每个值与阈值进行比较,看它是否超过阈值。所以我不想给出一个q值,我想被告知一个数据点的q值是多少。
所以我可能需要函数 a_percentile = function(a)
,其中 a_percentile 是原始数据值到百分位数的转换。
使用scipy.stats.percentileofscore https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.percentileofscore.html:
import numpy as np
from scipy.stats import percentileofscore
a = np.linspace(0, 10, 10)
[percentileofscore(a, i, kind='strict') for i in a]
输出:
[0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0]
我有下面一行代码:
threshold_value = numpy.percentile(a, q)
其中 a
是我的数据,q
设置为 95 让我们说。
假设我将 q
更改为 90,我将得到不同的阈值。
那么对于 a
中的每个数据点,我想计算 q 的什么值会产生 threshold_value
等于 a。所以我感兴趣的可能是 a
中的一个数据点低于 threshold_value,但我想要一个百分位数值来查看它的确切位置。当我有一个测试数据集时,我将每个值与阈值进行比较,看它是否超过阈值。所以我不想给出一个q值,我想被告知一个数据点的q值是多少。
所以我可能需要函数 a_percentile = function(a)
,其中 a_percentile 是原始数据值到百分位数的转换。
使用scipy.stats.percentileofscore https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.percentileofscore.html:
import numpy as np
from scipy.stats import percentileofscore
a = np.linspace(0, 10, 10)
[percentileofscore(a, i, kind='strict') for i in a]
输出:
[0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0]