Jonathan Helmus
2015-10-20 02:23:18 UTC
In GitHub issue #3474, a number of us have started a conversation on how
NumPy's copy function should behave when passed an instance which is a
sub-class of the array class. Specifically, the issue began by noting
that when a MaskedArray is passed to np.copy, the sub-class is not
passed through but rather a ndarray is returned.
I suggested adding a "subok" parameter which controls how sub-classes
are handled and others suggested having the function call a copy method
on duck arrays. The "subok" parameter is implemented in PR #6509 as an
example. Both of these options would change the API of numpy.copy and
possibly break backwards compatibility. Do others have an opinion of
how np.copy should handle sub-classes?
For a concrete example of this behavior and possible changes, what type
should copy_x be in the following snippet:
import numpy as np
x = np.ma.array([1,2,3])
copy_x = np.copy(x)
Cheers,
- Jonathan Helmus
NumPy's copy function should behave when passed an instance which is a
sub-class of the array class. Specifically, the issue began by noting
that when a MaskedArray is passed to np.copy, the sub-class is not
passed through but rather a ndarray is returned.
I suggested adding a "subok" parameter which controls how sub-classes
are handled and others suggested having the function call a copy method
on duck arrays. The "subok" parameter is implemented in PR #6509 as an
example. Both of these options would change the API of numpy.copy and
possibly break backwards compatibility. Do others have an opinion of
how np.copy should handle sub-classes?
For a concrete example of this behavior and possible changes, what type
should copy_x be in the following snippet:
import numpy as np
x = np.ma.array([1,2,3])
copy_x = np.copy(x)
Cheers,
- Jonathan Helmus