📜  Python中的 numpy.nanpercentile()

📅  最后修改于: 2022-05-13 01:55:04.982000             🧑  作者: Mango

Python中的 numpy.nanpercentile()

numpy.nanpercentile()函数用于计算给定数据(数组元素)沿指定轴的第 n 个百分位数 ang 忽略 nan 值。

代码#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)