[Numpy-discussion] Multiplying Python float to numpy.array of objects works but fails with a numpy.float64, numpy Bug?
Sebastian Walter
sebastian.walter@gmail....
Tue Jun 2 03:42:22 CDT 2009
Hello,
Multiplying a Python float to a numpy.array of objects works flawlessly
but not with a numpy.float64 .
I tried numpy version '1.0.4' on a 32 bit Linux and '1.2.1' on a 64
bit Linux: both raise the same exception.
Is this a (known) bug?
---------------------- test.py ------------------------------------
from numpy import *
class adouble:
def __init__(self,x):
self.x = x
def __mul__(self,rhs):
if isinstance(rhs,adouble):
return adouble(self.x * rhs.x)
else:
return adouble(self.x * rhs)
def __str__(self):
return str(self.x)
x = adouble(3.)
y = adouble(2.)
u = array([adouble(3.), adouble(5.)])
v = array([adouble(2.), adouble(7.)])
z = array([2.,3.])
print x * y # ok
print u * v # ok
print u * z # ok
print u * 3. # ok
print u * z[0] # _NOT_ OK!
print u * float64(3.) # _NOT_ OK!
---------------------- output ---------------------------------
walter@wronski$ python test.py
6.0
[6.0 35.0]
[6.0 15.0]
[9.0 15.0]
Traceback (most recent call last):
File "test.py", line 24, in <module>
print u * z[0] # _NOT_ OK!
TypeError: unsupported operand type(s) for *: 'numpy.ndarray' and
'numpy.float64'
regards,
Sebastian
More information about the Numpy-discussion
mailing list