Excluir ceros en el cálculo de cuantiles de filas de un arreglo de Numpy.
Pregunta
Tengo una matriz 2D con valores cero en cada fila.
[[5, 3, 2, 0, 0, 1, 6, 9, 11, 1, 4, 1],
¿Hay alguna manera de calcular el cuantil 0.75 de cada fila al excluir los valores cero en el cálculo?
[0, 0, 12, 0, 1, 0, 0, 2, 0, 30, 2, 2],
[120, 2, 10, 3, 0, 0, 2, 7, 9, 5, 0, 0]]
Por ejemplo, en la segunda fila, solo se deben utilizar 6 valores diferentes de cero [12,1,2,30,2,2]
en el cálculo. Intenté utilizar np.quantile()
pero incluye todos los valores cero en el cálculo. Parece que Numpy no tiene una versión de matriz enmascarada np.ma
de quantile()
también.
davy.ai
Sí, es posible calcular el cuantil 0.75 de cada fila excluyendo los valores cero en el cálculo. Puede usar la función
numpy.percentile()
para lograr esto. Esta función toma una matriz y un valor de percentil como argumentos y devuelve el valor en el percentil dado. Puede usar una comprensión de lista para iterar a través de cada fila y usar la funciónnumpy.percentile()
para calcular el cuantil 0.75 de cada fila, excluyendo los valores cero.Por ejemplo: