On Fri, Jun 10, 2011 at 1:50 PM, Benjamin Root <[email protected]> wrote:
> Came across an odd error while using numpy master. Note, my system is > 32-bits. > > >>> import numpy as np > >>> type(np.sum([1, 2, 3], dtype=np.int32)) == np.int32 > False > >>> type(np.sum([1, 2, 3], dtype=np.int64)) == np.int64 > True > >>> type(np.sum([1, 2, 3], dtype=np.float32)) == np.float32 > True > >>> type(np.sum([1, 2, 3], dtype=np.float64)) == np.float64 > True > > So, only the summation performed with a np.int32 accumulator results in a > type that doesn't match the expected type. Now, for even more strangeness: > > >>> type(np.sum([1, 2, 3], dtype=np.int32)) > <type 'numpy.int32'> > >>> hex(id(type(np.sum([1, 2, 3], dtype=np.int32)))) > '0x9599a0' > >>> hex(id(np.int32)) > '0x959a80' > > So, the type from the sum() reports itself as a numpy int, but its memory > address is different from the memory address for np.int32. > > One of them is probably a long, print out the typecode, dtype.char. Chuck
_______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
