2012-08-01 31 views
9

Oiga, esta es una pregunta rápida y fácil ... ¿Cómo puedo encontrar el valor mínimo de esta matriz, excluyendo 0? Al igual que en , 8¿Cómo encontrar el valor mínimo en una matriz numpy?

arr = numpy.array([[ 0., 56., 20., 44.], 
        [ 68., 0., 56., 8.], 
        [ 32., 56., 0., 44.], 
        [ 68., 20., 56., 0.]]) 

Respuesta

16

Como estás usando numpy, podría utilizar

arr[arr>0].min() 

para el caso informados. pero si la matriz podría tener valores negativos, se debe usar la

arr[arr != 0].min() 
+0

¿Tiene una función numpy? recibo un error ... – Sean

+0

@Sean: no, utilicé 'arr' como el nombre de su matriz. No especificaste uno. – jmetz

+0

ahh, kk lo tengo, ¡gracias! – Sean

0

numpy ha construido en funciones para hacer precisamente eso: numpy.max(array) y numpy.min(array).

>>> import numpy as np 
>>> a = np.array([[-3,1,1,3,7,9],[-6,-5,-2,1,5,6]]) 
>>> np.max(a) 
9 
>>> np.min(a) 
-6 
Cuestiones relacionadas