[Numpy-tickets] [NumPy] #1026: ufuncs do not respect ndarray subclasses in some cases
NumPy
numpy-tickets@scipy....
Wed Feb 25 05:56:49 CST 2009
#1026: ufuncs do not respect ndarray subclasses in some cases
------------------------+---------------------------------------------------
Reporter: DarrenDale | Owner: somebody
Type: defect | Status: new
Priority: high | Milestone: 1.3.0
Component: numpy.core | Version: none
Severity: major | Keywords:
------------------------+---------------------------------------------------
The following script demonstrates that ufuncs do not respect ndarray
subclasses when an iterable like list or tuple is passed to the second
argument. I have also seen this behavior with numpy's !MaskedArray.
{{{
import numpy as np
class MyArray(np.ndarray):
__array_priority__ = 20
def __new__(cls):
return np.asarray(1).view(cls).copy()
def __array_wrap__(self, obj, context=None):
print 'array wrap:', self, obj, context
return obj.view(type(self))
def __str__(self):
return 'MyArray(%s)'%super(MyArray,self).__str__()
mine = MyArray()
print np.multiply(3,mine) # yields MyArray
print np.multiply(mine,3) # yields MyArray
print np.multiply([1,2,3],mine) # yields MyArray
print np.multiply(mine,[1,2,3]) # yields ndarray
print np.multiply(mine,(1,2,3)) # yields ndarray
print np.multiply(mine,np.array([1,2,3])) # yields MyArray
}}}
--
Ticket URL: <http://scipy.org/scipy/numpy/ticket/1026>
NumPy <http://projects.scipy.org/scipy/numpy>
The fundamental package needed for scientific computing with Python.
More information about the Numpy-tickets
mailing list