Hi, I'm quite new to numpy. My understanding of argmax() is that it gives the index of the highest number in the array, just like: from numpy import * a=array(range(4096)) a=a*15 argmax(a) gives 4095. But, when I use this within my program I have a little function: def localMaxima(set): maxPos = argmax(set) maxVal = set[maxPos] return maxPos, maxVal that I have had to extend a little bit to: def localMaxima(set): maxPos = argmax(set) try: maxVal = set[maxPos] print "ok" except: print "maxPos = " + str(maxPos) + ", while len(set) is " + str(len (set)) print set maxVal = 0.0 return maxPos, maxVal The problem is that set is an array of 2048 numbers. However, when I run this function I get: "maxPos = 7925760, while len(set) is 2048" I do not understand why I get such a high index. Do you have any suggestions? Cheers Nik
On Mon, 1 Jan 2007, Niklas Saers apparently wrote:
The problem is that set is an array of 2048 numbers. However, when I run this function I get: "maxPos = 7925760, while len(set) is 2048" I do not understand why I get such a high index. Do you have any suggestions?
Can you post code that produces this problem? (Also, your numpy version.) Cheers, Alan Isaac
Hi, while answering your email (making a smaller version with data via pickle) I noticed that the variable "set" contained a very large matrix (I'm not quite sure but I believe I may have thrown 2048 dimensions at it with a multiplication that went wrong, giving a "set" object that pickled took 186547606 bytes. ;-) If it makes any sense I'd love to send you this variable that had len(2048) but was very much longer if stomped flat. :-) Cheers Nik On 1. jan. 2007, at 15.50, Alan G Isaac wrote:
On Mon, 1 Jan 2007, Niklas Saers apparently wrote:
The problem is that set is an array of 2048 numbers. However, when I run this function I get: "maxPos = 7925760, while len(set) is 2048" I do not understand why I get such a high index. Do you have any suggestions?
Can you post code that produces this problem? (Also, your numpy version.)
Cheers, Alan Isaac
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion
On Mon, 1 Jan 2007, Niklas Saers apparently wrote:
If it makes any sense I'd love to send you this variable that had len(2048) but was very much longer if stomped flat. :-)
It looks like you may already understand this, but just in case... import numpy r = numpy.random.random((100,5)) m1, m2 = numpy.argmax(r), r.argmax() print m1, m2 print r.flat[m1], r.flat[m2] try: print r[m1], r[m2] except: print "oops!" Cheers, Alan Isaac
participants (2)
-
Alan G Isaac
-
Niklas Saers