numpy.nanpercentile() in Python
Last Updated :
09 Aug, 2022
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
import numpy as np
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
import numpy as np
arr = [[ 14 , np.nan, 12 , 33 , 44 ],
[ 15 , np.nan, 27 , 8 , 19 ],
[ 23 , 2 , np.nan, 1 , 4 , ]]
print (& quot
\narr: \n"
, arr)
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 ))
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 ))
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 ))
|
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
import numpy as np
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)
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)
Share your thoughts in the comments
Please Login to comment...