Wednesday, July 3, 2024
HomeLanguagesPythonnumpy.nanpercentile() in Python

numpy.nanpercentile() in Python

numpy.nanpercentile()function used to compute the nth percentile of the given data (array elements) along the specified axis and ignores nan values.

Syntax : 

numpy.nanpercentile(arr, q, axis=None, out=None) 

Parameters : 

  • 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. 

Return :Percentile of the array (a scalar value if axis is none) or array with percentiles of values along specified axis.

Code #1 : Working 

Python




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


Output : 

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

  Code #2 : 

Python




# 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&quot
       , 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&quot
       ,
       np.nanpercentile(arr, 50, axis=1, keepdims=True))
print(& quot
       \n0th Percentile of arr, axis = 1: \n&quot
       ,
       np.nanpercentile(arr, 0, axis=1, keepdims=True))


Output : 

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.]]

  Code #3: 

Python




# 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&quot
       , 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))


Output : 

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)

Shaida Kate Naidoo
am passionate about learning the latest technologies available to developers in either a Front End or Back End capacity. I enjoy creating applications that are well designed and responsive, in addition to being user friendly. I thrive in fast paced environments. With a diverse educational and work experience background, I excel at collaborating with teams both local and international. A versatile developer with interests in Software Development and Software Engineering. I consider myself to be adaptable and a self motivated learner. I am interested in new programming technologies, and continuous self improvement.
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments