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