On Monday 23 April 2007 13:36:26 Christopher Barker wrote:
> Gael Varoquaux wrote:
> > Unless I miss something obvious "a.reshape()" doesn't modify a, which is
> > somewhat missleading, IMHO.
>
> quite correct. .reshape() creates a new array that shared data with the
> original:
Mmh. My understanding is that .reshape() creates a *view* of the original
array, so no data is actually copied. The only thing that changes is how the
data is read. That means that modifying the reshaped version will modify the
original.
So:
>>>import numpy as N
>>>a=N.zeros((3,2))
array([[ 0., 0., 0.],
[ 0., 0., 0.]])
>>>b=a.reshape(6,)
>>>b
array([ 0., 0., 0., 0., 0., 0.])
>>>b += 1
>>>b
array([ 1., 1., 1., 1., 1., 1.])
>>>a
array([[ 1., 1.],
[ 1., 1.],
[ 1., 1.]])
_______________________________________________
Numpy-discussion mailing list
[email protected]
http://projects.scipy.org/mailman/listinfo/numpy-discussion