Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 给定一个值,用Numpy查找百分位%_Python_Numpy - Fatal编程技术网

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)。