Are you using numarray? If so, there appears to be a max method of an array, so 
you can try

b = array([[1,2],[3,4]])
b.max()

Note that your method of finding the max row, then finding the max in the row, will not in general give the correct result. Sequences are compared lexicographically - the first elements are compared, and only if they match will the second elements be compared. Using plain lists:

>>> b=[ [3,2], [1,4] ]
>>> max(b)
[3, 2]
>>> max(max(b))
3

You can use a list comprehension to do what you want
>>> max([max(l) for l in b])
4

or in Python 2.4 you can use a generator expression and avoid creating the 
intermediate list:
>>> max(max(l) for l in b)
4

Kent

Ertl, John wrote:
All,

I am trying to get the maximum value in a 2-D array.  I can use max but it
returns the 1-D array that the max value is in and I then I need to do max
again on that array to get the single max value.

There has to be a more straightforward way...I have just not found it.


b = array([[1,2],[3,4]])
max(b)

array([3, 4])

c = max(b)
max(c)

4


I could also flatten the array to 1 D first then do max but the array I am going to be working with is fairly large.

Thanks _______________________________________________
Tutor maillist - [EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/tutor


_______________________________________________
Tutor maillist  -  [EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/tutor

Reply via email to