[Numpy-discussion] documentation suggestion

Pauli Virtanen pav@iki...
Mon Apr 13 12:17:26 CDT 2009

Sun, 12 Apr 2009 17:32:31 -0400, Neal Becker wrote:
> Done, but can someone check that what I wrote is accurate?  I wrote that
> changes to the ndarray will change the underlying buffer object.  But,
> the buffer protocol allows for read-only buffers.  Not sure what ndarray
> would do if you tried to write in that case.

For read-only buffers, the new array will not be writeable:

>>> x="abcde"
>>> z=np.ndarray((5,), buffer=x, dtype='1S')
>>> z[0] = 'x'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
RuntimeError: array is not writeable

However, you can override this, and misusing it potentially leads to 
nasty things:

>>> x="abcde"
>>> y="abcde"
>>> z=np.ndarray((5,), buffer=x, dtype='1S')
>>> z.flags.writeable = True
>>> z[0] = 'x'
>>> x
>>> y
>>> hash(x)
>>> hash("abcde")

Hashing breaks, and the assumed immutability of strings causes nonlocal 


However, for some reason, I don't see your contribution in the change 


Can you check if the change you made went through? What page did you edit?

Pauli Virtanen

More information about the Numpy-discussion mailing list