[SciPy-User] problems with numpy array assignment

Eric Hermes ehermes at chem.wisc.edu
Tue Mar 4 15:18:18 EST 2014


On 3/4/2014 2:13 PM, Gabriele Brambilla wrote:
> But the changes I make on  PAS=MYMAP[:, hhh. :] will be applied to 
> G=MYMAP[:, :, :]?
>
> Gabriele
>
If PAS is assigned as:

PAS = MYMAP[:,hhh,:]

and G is assigned as:

G = MYMAP[:,:,:]

then modification of one variable will affect the other, since PAS and G 
are references to slices of the array MYMAP (which will also be modified).

Eric
>
> 2014-03-04 15:07 GMT-05:00 Gabriele Brambilla 
> <gb.gabrielebrambilla at gmail.com <mailto:gb.gabrielebrambilla at gmail.com>>:
>
>     thanks.
>
>     Gabriele
>
>
>     2014-03-04 15:04 GMT-05:00 Eric Hermes <ehermes at chem.wisc.edu
>     <mailto:ehermes at chem.wisc.edu>>:
>
>         On 3/4/2014 2:00 PM, Gabriele Brambilla wrote:
>>         Hi,
>>
>>         Something strange happens in my code: I have added the lines
>>         after #...
>>
>>         MYMAP is a 3d numpy array
>>         PAS = MYMAP[:, hhh, :]
>>
>>         #multiplying per energy bin width
>>         PAS1 = PAS
>>         for l in nIph:
>>                  PAS1[l,:] = PAS1[l,:]*zz
>>
>>         But this affect the result I get when I elaborate the data from:
>>
>>         EXCT = MYMAP[:, hhh, :]
>>
>>         is python continuing to modify the original matrix??
>>
>>         Thanks
>>
>>         Gabriele
>>
>>
>>         _______________________________________________
>>         SciPy-User mailing list
>>         SciPy-User at scipy.org  <mailto:SciPy-User at scipy.org>
>>         http://mail.scipy.org/mailman/listinfo/scipy-user
>         Gabriele,
>
>         Numpy arrays are passed as references, so in your code when
>         you modify PAS1 (which inherits the reference to MYMAP from
>         PAS), the changes propogates upwards into MYMAP.  If you want
>         to avoid this, you can explicitly create a copy of the array,
>         either by doing:
>
>         PAS = MYMAP[:,hhh,:].copy()
>
>         or:
>
>         PAS1 = PAS.copy()
>
>         Eric
>
>         -- 
>         Eric Hermes
>         J.R. Schmidt Group
>         Chemistry Department
>         University of Wisconsin - Madison
>
>
>         _______________________________________________
>         SciPy-User mailing list
>         SciPy-User at scipy.org <mailto:SciPy-User at scipy.org>
>         http://mail.scipy.org/mailman/listinfo/scipy-user
>
>
>
>
>
> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user

-- 
Eric Hermes
J.R. Schmidt Group
Chemistry Department
University of Wisconsin - Madison

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.scipy.org/pipermail/scipy-user/attachments/20140304/8de9fa3b/attachment.html>


More information about the SciPy-User mailing list