Python numpy.nanpercentile()
numpy.nanpercentile()用于计算给定数据(数组元素)沿指定轴线的第n个百分位数的函数,并忽略nan值。
语法 :
numpy.nanpercentile(arr, q, axis=None, out=None)
参数 :
- arr : 输入阵列。
- q : 百分数值。
- axis:我们要计算百分位数的轴。否则,它将认为arr是平坦的(在所有轴上工作)。 axis=0意味着沿着列, axis=1意味着沿着行工作。
- out :不同的数组,我们要把结果放在其中。该数组必须具有与预期输出相同的尺寸。
返回 :数组的百分位数(如果坐标轴为零,则为标量值),或者数组中沿指定坐标轴的数值的百分位数。
**代码 #1 : **
# Python Program illustrating
# numpy.nanpercentile() method
import numpy as np
# 1D array
arr = [20, 2, 7, np.nan, 34]
print("arr : ", arr)
print("50th 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("\n50th 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]
50th percentile of arr : nan
25th percentile of arr : nan
75th percentile of arr : nan
50th 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(& quot
\narr: \n"
, arr)
# Percentile of the flattened array
print(& quot
\n50th Percentile of arr, axis = None : & quot
,
np.percentile(arr, 50))
print(& quot
\n50th Percentile of arr, axis = None : & quot
,
np.nanpercentile(arr, 50))
print(& quot
0th Percentile of arr, axis = None : & quot
,
np.nanpercentile(arr, 0))
# Percentile along the axis = 0
print(& quot
\n50th Percentile of arr, axis = 0 : & quot
,
np.nanpercentile(arr, 50, axis=0))
print(& quot
0th Percentile of arr, axis = 0 : & quot
,
np.nanpercentile(arr, 0, axis=0))
# Percentile along the axis = 1
print(& quot
\n50th Percentile of arr, axis = 1 : & quot
,
np.nanpercentile(arr, 50, axis=1))
print(& quot
0th Percentile of arr, axis = 1 : & quot
,
np.nanpercentile(arr, 0, axis=1))
print(& quot
\n0th Percentile of arr, axis = 1: \n"
,
np.nanpercentile(arr, 50, axis=1, keepdims=True))
print(& quot
\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(& quot
\narr: \n"
, arr)
# Percentile along the axis = 1
print(& quot
\n50th Percentile of arr, axis = 1 : & quot
,
np.nanpercentile(arr, 50, axis=1))
print(& quot
\n50th Percentile of arr, axis = 0 : & quot
,
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)