2012-08-01 349 views
9

嘿,这是一个快速简单的问题... 我如何找到这个矩阵的最小值,不包括0? 如,8如何在numpy矩阵中找到最小值?

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

回答

16

当你使用numpy,你可以使用

arr[arr>0].min() 

为您发布的情况。 但如果你的阵列可以有负值,那么你应该使用

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

是一个nr功能吗?我得到一个错误... – Sean 2012-08-01 17:21:01

+0

@ Sean:不,我用'arr'作为你的数组名称。你没有指定一个。 – jmetz 2012-08-01 17:21:49

+0

啊,kk明白了,谢谢! – Sean 2012-08-01 17:23:51

0

numpy具有内置的功能正是这样做:numpy.max(array)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 
相关问题