numpy.nanpercentile() en Python

La función numpy.nanpercentile() utilizada para calcular el percentil n de los datos dados (elementos de array) a lo largo del eje especificado ignora los valores nan.

Sintaxis: 

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

Parámetros: 

  • arr : array de entrada. 
  • q : valor del percentil. 
  • axis : eje a lo largo del cual queremos calcular el valor del percentil. De lo contrario, considerará que arr está aplanado (funciona en todos los ejes). axis = 0 significa a lo largo de la columna y axis = 1 significa trabajar a lo largo de la fila. 
  • out : Array diferente en el que queremos colocar el resultado. La array debe tener las mismas dimensiones que la salida esperada. 

Retorno: percentil de la array (un valor escalar si el eje no es ninguno) o array con percentiles de valores a lo largo del eje especificado.

Código #1: Trabajando 

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

Producción : 

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

  Código #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"
       , 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))

Producción : 

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

  Código #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"
       , 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))

Producción : 

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)

Publicación traducida automáticamente

Artículo escrito por Mohit Gupta_OMG 🙂 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *