[Tutor] maximum value in a Numeric array
Kent Johnson
kent37 at tds.net
Fri Dec 10 20:19:08 CET 2004
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 - Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
More information about the Tutor
mailing list