我使用此函数计算here的百分位数:
import numpy as np
a = [12, 3, 45, 0, 45, 47, 109, 1, 0, 3]
np.percentile(a, 25)
但是我收到了这个错误:
AttributeError: 'module' object has no attribute 'percentile'
我也试过
import numpy.percentile as np
但是我没有得到同样的错误。
我的numpy版本是1.3.0我试图升级,但似乎我不会使用:[sudo pip install --upgrade scipy][2]
但我发现没有升级。
我的ubuntu版本9.10
我的python版本是:2.6.4
我还试图绕过numpy.percentile模块,我找到了这个here:
>>> def percentile(N, P):
... n = int(round(P * len(N) + 0.5))
... if n > 1:
... return N[n-2]
... else:
... return 0
...
>>> a = [1, 23, 5, 45, 676, 2, 0, 4,3]
>>> a = sorted(a)
>>> a
[0, 1, 2, 3, 5, 4, 23, 45, 676]
#When I call the function using
>>> percentile(a,0.5)
3
但是当我尝试手动找到0.5 percentile
时,我找到了5
任何人都可以帮我解释为什么在这些情况下会发生这种情况吗?
答案 0 :(得分:7)
在version 1.5.x中添加了percentile
功能。您需要升级到至少该版本。
你有没有尝试过:
sudo pip install numpy==1.7.1 --upgrade
要检查您正在运行的版本,请启动python控制台并运行:
>>> import numpy
>>> print numpy.__version__
你也可以这样做:
sudo pip freeze | grep numpy
Ubuntu 9.10 numpy包使用version 1.3.03。安装版本1.7.0 vai pip很可能是成功的,但是你的机器默认为python-numpy版本。您可以通过运行删除:
sudo apt-get remove python-numpy
答案 1 :(得分:2)
请升级您的numpy软件包
pip install --upgrade numpy==1.19.1
或
sudo pip install --upgrade numpy==1.19.1