将数字映射到它们的百分位数
Map numbers to their percentiles
我想应用numpy.percentile
的结果到它的参数,即映射输入中的每个数字矢量到它的分位数。
例如,如果 v=np.array([1,2,3,4])
,我只想要两个分位数(比中位数大和小),我会得到 np.array([0,0,1,1])
告诉我 v
的前两个元素小于中位数,最后两个大于中位数。
请注意,我对十分位数感兴趣,而不仅仅是中位数!
IOW,@PaulPanzer 击中要害:
np.digitize(v,np.percentile(v,quantiles))
谢谢!
(v > np.percentile(v, 50)).astype(int)
Out[93]:
array([0, 0, 1, 1])
使用np.digitize
:
perc = np.percentile(data, q)
indices = np.digitize(data, perc)
示例 q = [25,50,75]
、data = np.arange(8)
:
indices
# array([0, 0, 1, 1, 2, 2, 3, 3])
我想应用numpy.percentile
的结果到它的参数,即映射输入中的每个数字矢量到它的分位数。
例如,如果 v=np.array([1,2,3,4])
,我只想要两个分位数(比中位数大和小),我会得到 np.array([0,0,1,1])
告诉我 v
的前两个元素小于中位数,最后两个大于中位数。
请注意,我对十分位数感兴趣,而不仅仅是中位数!
IOW,@PaulPanzer 击中要害:
np.digitize(v,np.percentile(v,quantiles))
谢谢!
(v > np.percentile(v, 50)).astype(int)
Out[93]:
array([0, 0, 1, 1])
使用np.digitize
:
perc = np.percentile(data, q)
indices = np.digitize(data, perc)
示例 q = [25,50,75]
、data = np.arange(8)
:
indices
# array([0, 0, 1, 1, 2, 2, 3, 3])