[Numpy-discussion] Non-writeable default for numpy.ndarray

Francesc Altet faltet at carabos.com
Fri Sep 29 12:44:06 EDT 2006


A Divendres 29 Setembre 2006 18:12, Tim Hochberg va escriure:
> It's not that the it's being built from ndarray, it's that the buffer
> that you are passing it is read only. In fact, I'd argue that allowing
> the writeable flag to be set to True in this case is actually a bug.
>
> Consider this slightly modified example:
>      >>> a = "12345"*4
>      >>> f4=numpy.ndarray(buffer=a, dtype="f4", shape=3)
>      >>> f4[2] = 99
>
>     Traceback (most recent call last):
>       File "<stdin>", line 1, in ?
>     RuntimeError: array is not writeable
>
>      >>> f4.flags.writeable = True
>      >>> a
>
>     '12345123451234512345'
>
>      >>> f4.flags.writeable = True
>      >>> f4[2] = 99
>      >>> a
>
>     '12345123\x00\x00\xc6B34512345'
>
> The original, *immutable* string has been mutated. This could get you
> into real trouble in certain situations.

I see. Thanks for the explanation.

-- 
>0,0<   Francesc Altet     http://www.carabos.com/
V   V   Cárabos Coop. V.   Enjoy Data
 "-"




More information about the NumPy-Discussion mailing list