当inf值存在于数组中时,在某些条件下,np.percentile可以返回NaN作为中位数,而np.median可以返回一个有限值。
>>> import numpy as np
>>> np.percentile([np.inf, 5, 4], [10, 20, 30, 40, 50, 60, 70, 80, 90])
/Users/tom/miniconda3/envs/alldev/lib/python3.7/site-packages/numpy-1.16.0.dev0+45718fd-py3.7-macosx-10.7-x86_64.egg/numpy/lib/function_base.py:3947: RuntimeWarning: invalid value encountered in multiply
x2 = take(ap, indices_above, axis=axis) * weights_above
array([4.2, 4.4, 4.6, 4.8, nan, inf, inf, inf, inf])
>>> np.median([np.inf, 5, 4])
5.0
在这种情况下,np.median能够正确返回5.0作为中位数,而np.percentile返回第50个百分位数的NaN。
答案 0 :(得分:0)
第一个参数是数据,第二个参数是置信区间。您不允许在置信区间中输入非数字
data=[10, 20, 30, 40, 50, 60, 70, 80, 90]
confidence=[5, 4]
results=np.percentile(data,confidence )
print(results)
输出
array([14. , 13.2])
值 13.2 到 14 将产生 4% 到 5% 的置信区间