[Numpy-discussion] np.array execution path
Travis Oliphant
travis at continuum.io
Sat Sep 22 14:12:02 EDT 2012
Check to see if this expression is true
no is o
In the first case no and o are the same object
Travis
--
Travis Oliphant
(on a mobile)
512-826-7480
On Sep 22, 2012, at 1:01 PM, Sebastian Berg <sebastian at sipsolutions.net> wrote:
> Hi,
>
> I have a bit of trouble figuring this out. I would have expected
> np.asarray(array) to go through ctors, PyArray_NewFromArray, but it
> seems to me it does not, so which execution path is exactly taken here?
> The reason I am asking is that I want to figure out this behavior/bug,
> and I really am not sure which function is responsible:
>
> In [69]: o = np.ones(3)
>
> In [70]: no = np.asarray(o, order='C')
>
> In [71]: no[:] = 10
>
> In [72]: o # OK, o was changed in place:
> Out[72]: array([ 10., 10., 10.])
>
> In [73]: no.flags # But no claims to own its data!
> Out[73]:
> C_CONTIGUOUS : True
> F_CONTIGUOUS : True
> OWNDATA : True
> WRITEABLE : True
> ALIGNED : True
> UPDATEIFCOPY : False
>
> In [74]: no = np.asarray(o, order='F')
>
> In [75]: no[:] = 11
>
> In [76]: o # Here asarray actually returned a real copy!
> Out[76]: array([ 10., 10., 10.])
>
>
> Thanks,
>
> Sebastian
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
More information about the NumPy-Discussion
mailing list