[Numpy-discussion] Python crashes while printing a huge numpy array (Windows 1.6b2)

Christoph Gohlke cgohlke at uci.edu
Sat Apr 23 17:38:21 EDT 2011



On 4/23/2011 10:41 AM, Charles R Harris wrote:
>
>
> On Sat, Apr 23, 2011 at 11:09 AM, Bruce Southey <bsouthey at gmail.com
> <mailto:bsouthey at gmail.com>> wrote:
>
>     On Sat, Apr 23, 2011 at 9:58 AM, Till Stensitzki <mail.till at gmx.de
>     <mailto:mail.till at gmx.de>> wrote:
>     >
>     > > Do you also have an earlier version of numpy installed? As David
>     says, this
>     > >should raise an error for recent numpy and
>     > >I'm wondering if you are inadvertently
>     > >running an earlier version.Chuck
>     >
>     >
>     >  I only have one python installation and
>     >  numpy.__version__ shows 1.6b.
>     >  I could reinstall numpy, if it would help.
>     >
>     >  _______________________________________________
>     >  NumPy-Discussion mailing list
>     >  NumPy-Discussion at scipy.org <mailto:NumPy-Discussion at scipy.org>
>     >  http://mail.scipy.org/mailman/listinfo/numpy-discussion
>     >
>
>     Hi,
>     I can get this with 64-bit Win 7, 32-bit Python 2.6, 2.7 (below) and
>     3.1 and numpy 1.6b (fresh install)  IDLE and the command line. I can
>     also confirm the 'ValueError' with Python2.6 and numpy 1.51 on the
>     same system.
>
>     Actually this is 'weird' when printing and crashed with the range -
>     accessing unassigned memory?
>     A smaller array gives an numpy error or memory error in idle.
>
>     Bruce
>
>
>     > >> import numpy as np
>     > >> x=np.zeros((262144, 262144))
>     > >> x
>     array([], shape=(262144, 262144), dtype=float64)
>     > >> x[0,0]
>     2.1453735050108555e-314
>     > >> x[1:10,1:10]
>
>     > >> ================================ RESTART
>     ================================
>     > >> import numpy as np
>
>     > >> x=np.zeros((26214, 26214))
>
>     Traceback (most recent call last):
>       File "<pyshell#7>", line 1, in <module>
>         x=np.zeros((26214, 26214))
>     ValueError: array is too big.
>     > >>
>     > >> x=np.zeros((262144, 26214))
>
>     Traceback (most recent call last):
>       File "<pyshell#8>", line 1, in <module>
>         x=np.zeros((262144, 26214))
>     MemoryError
>     _____
>
>
> This was fixed before, maybe it got broken again. Since this looks
> windows specific, I'm guessing it has something to do with the size of
> long being 32 bits.
>
> The previous problem was integer overflow when multiplying the
> dimensions together to get the array size when repeated divisions of the
> maximum size should have be used instead.
>
> Chuck

Could be related to this change:

<https://github.com/numpy/numpy/commit/fcc6cc73ddcb1fc85446ba9256ac24ecdda6c6d8#L1L1121>

Christoph



More information about the NumPy-Discussion mailing list