[Numpy-discussion] Crash using "reshape"...
francesc at continuum.io
Wed Nov 21 05:14:58 EST 2012
On 11/21/12 10:12 AM, Terry J. Ligocki wrote:
> I am having a problem with "reshape" crashing:
> > python
> Python 2.6.4 (r264:75706, Jan 16 2010, 21:11:47)
> [GCC 4.3.2] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import numpy
> >>> numpy.version.version
> >>> npData = numpy.ones([701,701,7899],dtype=numpy.dtype('b'))
> >>> npDataSubset = npData[[slice(0,700),slice(0,700),slice(0,5000)]]
> >>> npDataOutput = npDataSubset.reshape([700*700*5000],order='F')
> Segmentation fault
> If I change the "5000" to a "4000", everything is fine. I'm not
> running out of memory - my system had 48 GB of memory and nothing else
> is using a significant portion of this memory.
> Note: 700x700x4000 = 1,960,000,000 < 2^31 and 700x700x5000 =
> 2450000000 > 2^31. I suspect somewhere in the underlying code there
> is a signed 32-bit integer being used for an index/pointer offset
> (this is running on a 64-bit machine).
Yes, looks like a 32-bit issue. Sometimes you can have 32-bit software
installed in 64-bit machines, so that might be your problem. What's the
equivalent of numpy.intp in your machine? Mine is:
In : import numpy as np
In : np.intp
If you see 'numpy.int32' here then that is the problem.
More information about the NumPy-Discussion