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