[Numpy-discussion] Bus error when using flat on sliced, memmap'd array
travis at continuum.io
Thu May 31 07:59:53 EDT 2012
Be sure to file a ticket...
On May 30, 2012, at 9:05 PM, chris farrow wrote:
> Hi all,
> I encountered an odd bug today that I wanted to bring to everyone's attention. First the code:
> >>> import numpy as np
> >>> shape = (8, 8)
> >>> dtype = np.dtype(np.uint8)
> >>> image = np.random.randint(0, 256, shape).astype(dtype)
> >>> image.tofile("test_image.bin")
> >>> image = np.memmap("test_image.bin", dtype=dtype, shape=shape, mode='r')
> >>> arr = image[::2,::2]
> >>> np.sum(arr.flat)
> On my system (numpy 1.6.1, git revision 68538b74483009c2c2d1644ef00397014f95a696, on OSX, python 2.7.3 (32-bit)), this causes a bus error when run.
> Here's what I've discovered so far about this:
> - the bus error only occurs with mode 'r'
> - the dimensionality of the array appears to be irrelevant
> - if the array slice does not change the strides, the bus error does not occur
> - no 'arr.flat', no bus error
> - Other aggregating functions (e.g. fmin.reduce) will induce the error
> - Iterating over arr.flat will *not* cause a bus error
> Based on this, I suspect the issue is with the C-facing side of the flat iterator.
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion