[Numpy-discussion] deprecating assignment to ndarray.data

Juan Nunez-Iglesias jni.soma at gmail.com
Thu Jan 21 21:16:50 EST 2016


Does this apply in any way to the .data attribute in scipy.sparse matrices?
I fiddle with that quite often!

On Fri, Jan 22, 2016 at 11:21 AM, Nathaniel Smith <njs at pobox.com> wrote:

> So it turns out that ndarray.data supports assignment at the Python
> level, and what it does is just assign to the ->data field of the
> ndarray object:
>
> https://github.com/numpy/numpy/blob/master/numpy/core/src/multiarray/getset.c#L325
>
> This kind of assignment been deprecated at the C level since 1.7, and
> is totally unsafe -- if there are any views pointing to the array when
> this happens, then they'll be left pointing off into unallocated
> memory.
>
> E.g.:
>
> a = np.arange(10)
> b = np.linspace(0, 1, 10)
> c = a.view()
> a.data = b.data
> # Now c points into free'd memory
>
> Can we deprecate or just remove this?
>
> (Also filed issue: https://github.com/numpy/numpy/issues/7093)
>
> -n
>
> --
> Nathaniel J. Smith -- https://vorpus.org
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> https://mail.scipy.org/mailman/listinfo/numpy-discussion
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20160122/8a68e490/attachment.html>


More information about the NumPy-Discussion mailing list