用于计算沿指定轴ang的给定数据(数组元素)的第n个百分位数的numpy.nanpercentile()函数将忽略nan值。
用法:numpy.nanpercentile(arr, q, axis=None, out=None)
参数:
arr :input array.
q : percentile value.
axis:axis along which we want to calculate the percentile value.Otherwise, it will consider arr to be flattened(works on all the axis). axis = 0
means along the column and axis = 1 means working along the row.
out : Different array in which we want to place the result. The array must have same dimensions as expected output.
返回:数组的百分位数(如果轴不存在,则为标量值)或具有沿指定轴的值的百分位数的数组。
代码1:工作
# Python Program illustrating
# numpy.nanpercentile() method
import numpy as np
# 1D array
arr = [20, 2, 7, np.nan, 34]
print("arr:", arr)
print("30th percentile of arr:",
np.percentile(arr, 50))
print("25th percentile of arr:",
np.percentile(arr, 25))
print("75th percentile of arr:",
np.percentile(arr, 75))
print("\n30th percentile of arr:",
np.nanpercentile(arr, 50))
print("25th percentile of arr:",
np.nanpercentile(arr, 25))
print("75th percentile of arr:",
np.nanpercentile(arr, 75))
输出:
arr: [20, 2, 7, nan, 34] 30th percentile of arr: nan 25th percentile of arr: nan 75th percentile of arr: nan 30th percentile of arr: 13.5 25th percentile of arr: 5.75 75th percentile of arr: 23.5
代码2:
# Python Program illustrating
# numpy.nanpercentile() method
import numpy as np
# 2D array
arr = [[14, np.nan, 12, 33, 44],
[15, np.nan, 27, 8, 19],
[23, 2, np.nan, 1, 4,]]
print("\narr:\n", arr)
# Percentile of the flattened array
print("\n50th Percentile of arr, axis = None:",
np.percentile(arr, 50))
print("\n50th Percentile of arr, axis = None:",
np.nanpercentile(arr, 50))
print("0th Percentile of arr, axis = None:",
np.nanpercentile(arr, 0))
# Percentile along the axis = 0
print("\n50th Percentile of arr, axis = 0:",
np.nanpercentile(arr, 50, axis =0))
print("0th Percentile of arr, axis = 0:",
np.nanpercentile(arr, 0, axis =0))
# Percentile along the axis = 1
print("\n50th Percentile of arr, axis = 1:",
np.nanpercentile(arr, 50, axis =1))
print("0th Percentile of arr, axis = 1:",
np.nanpercentile(arr, 0, axis =1))
print("\n0th Percentile of arr, axis = 1:\n",
np.nanpercentile(arr, 50, axis =1, keepdims=True))
print("\n0th Percentile of arr, axis = 1:\n",
np.nanpercentile(arr, 0, axis =1, keepdims=True))
输出:
arr: [[14, nan, 12, 33, 44], [15, nan, 27, 8, 19], [23, 2, nan, 1, 4]] 50th Percentile of arr, axis = None: nan 50th Percentile of arr, axis = None: 14.5 0th Percentile of arr, axis = None: 1.0 50th Percentile of arr, axis = 0: [15. 2. 19.5 8. 19. ] 0th Percentile of arr, axis = 0: [14. 2. 12. 1. 4.] 50th Percentile of arr, axis = 1: [23.5 17. 3. ] 0th Percentile of arr, axis = 1: [12. 8. 1.] 0th Percentile of arr, axis = 1: [[23.5] [17. ] [ 3. ]] 0th Percentile of arr, axis = 1: [[12.] [ 8.] [ 1.]]
代码3:
# Python Program illustrating
# numpy.nanpercentile() method
import numpy as np
# 2D array
arr = [[14, np.nan, 12, 33, 44],
[15, np.nan, 27, 8, 19],
[23, np.nan, np.nan, 1, 4,]]
print("\narr:\n", arr)
# Percentile along the axis = 1
print("\n50th Percentile of arr, axis = 1:",
np.nanpercentile(arr, 50, axis =1))
print("\n50th Percentile of arr, axis = 0:",
np.nanpercentile(arr, 50, axis =0))
输出:
arr: [[14, nan, 12, 33, 44], [15, nan, 27, 8, 19], [23, nan, nan, 1, 4]] 50th Percentile of arr, axis = 1: [23.5 17. 4. ] 50th Percentile of arr, axis = 0: [15. nan 19.5 8. 19. ] RuntimeWarning:All-NaN slice encountered overwrite_input, interpolation)
相关用法
注:本文由纯净天空筛选整理自Mohit Gupta_OMG 大神的英文原创作品 numpy.nanpercentile() in Python。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。