[Numpy-discussion] array.argmax() question

Ryan Krauss ryanlists at gmail.com
Thu Feb 23 18:09:00 EST 2006


Is this the expected behavior for array.argmax():

ipdb> abs(real(disps)).max()
Out[38]: 1.7373584411866401e-05
ipdb> abs(real(disps)).argmax()
Out[38]: 32
ipdb> shape(disps)
Out[38]: (11, 3)
ipdb> disps[11,1]
*** IndexError: invalid index
ipdb> disps[10,1]
Out[38]: 0j
ipdb> disps[10,2]
Out[38]: (-1.7373584411866401e-05+5.2046737124258386e-21j)

Basically, I want to find the element with the largest absolute value
in a matrix and use it to scale by.  But I need to correct for the
possibility that the largest abs value may be from a negative number. 
So, I need to get the corresponding element itself.

My array is shape (11,3) and argmax without an axis argument returns
32, which would be the index if the matrix was reshaped into a (33,)
vector.  Is there a clean way to extract the element based on the
output of argmax? (and in my case it is actually using the output of
argmax to extract the element from the matrix without the abs).  Or do
I need to reshape the matrix into a vector first?

Thanks,

Ryan




More information about the NumPy-Discussion mailing list