Python 给定一个值,用Numpy查找百分位%
也许有更好的词来描述这个问题,但是我想做的是与Python 给定一个值,用Numpy查找百分位%,python,numpy,Python,Numpy,也许有更好的词来描述这个问题,但是我想做的是与np.percentile()相反。我有一个n个数字的列表,我想看看其中哪个百分比比给定值小。现在我得到这个值的方法是不断尝试不同的小数。我想让Numpy告诉我的是: 给定阈值=0.20(输入),列表d中约99.847781%(输出)的项目低于该百分位 我现在所做的只是粗略地得到这个数字: >>> np.percentile(np.absolute(d), 99.847781) 0.19999962082827874 >&g
np.percentile()
相反。我有一个n个数字的列表,我想看看其中哪个百分比比给定值小。现在我得到这个值的方法是不断尝试不同的小数。我想让Numpy告诉我的是:
给定阈值=0.20(输入),列表d
中约99.847781%(输出)的项目低于该百分位
我现在所做的只是粗略地得到这个数字:
>>> np.percentile(np.absolute(d), 99.847781)
0.19999962082827874
>>> np.percentile(np.absolute(d), 99.8477816)
0.19999989822334402
>>> np.percentile(np.absolute(d), 99.8477817)
0.19999994445584851
>>> np.percentile(np.absolute(d), 99.8477818)
0.19999999068835939
...
如果我对你的问题理解正确,比如
sum(d < threshold) / len(d)
sum(d
我应该这样做
编辑:我错过了问题中的绝对值-
sum(np.abs(d) < threshold) / float(len(d))
sum(np.abs(d)
您是否在寻找总和(d<给定值)/len(d)
?如果使用的是python2
,则必须将其中一个操作数强制转换为float
这个操作数?将您的代码编辑成python函数,但这是正确的想法!我想我忘记了基本的东西!谢谢。@Cookie,您的编辑与此处发布的内容不相等。如果您想要绝对值,请执行sum(np.absolute(d)<0.2)/float(len(d))
如果d
是一个numpy数组,则我给出的代码是有效的python代码(假设您使用的是python3)。