[Numpy-discussion] bug in deepcopy() of rank-zero arrays?

Chris Barker - NOAA Federal chris.barker@noaa....
Tue Apr 30 10:49:16 CDT 2013


hmm -- I suppose one of us should post an issue on github -- then ask for
it ti be fixed before 1.8  ;-)

I'll try to get to the issue if no one beats me to it -- got to run now...

-Chris



On Tue, Apr 30, 2013 at 5:35 AM, Richard Hattersley
<rhattersley@gmail.com>wrote:

> +1 for getting rid of this inconsistency
>
> We've hit this with Iris (a met/ocean analysis package - see github), and
> have had to add several workarounds.
>
>
> On 19 April 2013 16:55, Chris Barker - NOAA Federal <chris.barker@noaa.gov
> > wrote:
>
>>  Hi folks,
>>
>> In [264]: np.__version__
>> Out[264]: '1.7.0'
>>
>> I just noticed that deep copying a rank-zero array yields a scalar --
>> probably not what we want.
>>
>> In [242]: a1 = np.array(3)
>>
>> In [243]: type(a1), a1
>> Out[243]: (numpy.ndarray, array(3))
>>
>> In [244]: a2 = copy.deepcopy(a1)
>>
>> In [245]: type(a2), a2
>> Out[245]: (numpy.int32, 3)
>>
>> regular copy.copy() seems to work fine:
>>
>> In [246]: a3 = copy.copy(a1)
>>
>> In [247]: type(a3), a3
>> Out[247]: (numpy.ndarray, array(3))
>>
>> Higher-rank arrays seem to work fine:
>>
>> In [253]: a1 = np.array((3,4))
>>
>> In [254]: type(a1), a1
>> Out[254]: (numpy.ndarray, array([3, 4]))
>>
>> In [255]: a2 = copy.deepcopy(a1)
>>
>> In [256]: type(a2), a2
>> Out[256]: (numpy.ndarray, array([3, 4]))
>>
>> Array scalars seem to work fine as well:
>>
>> In [257]: s1 = np.float32(3)
>>
>> In [258]: s2 = copy.deepcopy(s1)
>>
>> In [261]: type(s1), s1
>> Out[261]: (numpy.float32, 3.0)
>>
>> In [262]: type(s2), s2
>> Out[262]: (numpy.float32, 3.0)
>>
>> There are other ways to copy arrays, but in this case, I had a dict
>> with a bunch of arrays in it, and needed a deepcopy of the dict. I was
>> surprised to find that my rank-0 array got turned into a scalar.
>>
>> -Chris
>>
>> --
>>
>> Christopher Barker, Ph.D.
>> Oceanographer
>>
>> Emergency Response Division
>> NOAA/NOS/OR&R            (206) 526-6959   voice
>> 7600 Sand Point Way NE   (206) 526-6329   fax
>> Seattle, WA  98115       (206) 526-6317   main reception
>>
>> Chris.Barker@noaa.gov
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion@scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>


-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker@noaa.gov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/numpy-discussion/attachments/20130430/a3bfe6c6/attachment.html 


More information about the NumPy-Discussion mailing list