长时间读写器,第一次写入。不受支持的操作数类型为*:'numpy.ndarray'和'numpy.float64'
我搜索了谷歌和堆栈溢出,但没有真正能够找到这个问题的一般答案。
我在使用numpy 1.6.2的python 2.7.3中得到了“不受支持的操作数类型*:'numpy.ndarray'和'numpy.float64'”。
错误来自乘numpy数组和numpy浮点数,但它不会每次都发生。
例如:
x = np.tan(1) # numpy.float64
y = np.array([0,1,2,3]) # numpy.ndarray
np.multiply(x,y) # works no problem
或者
x = np.tan(np.abs(np.multiply(-31,41))) # numpy.float64
y = np.square(np.add(np.divide(np.zeros(100),42),(-27)**40)) # numpy.ndarray
np.multiply(x,y) # works no problem
两个工作
现在的问题儿童:
np.multiply(np.square(np.add(np.divide(np.zeros(100),42),-27)**40)),
np.tan(np.abs(np.multiply(-31,41))))
,或者被定义为上述X:
np.multiply(np.square(np.add(np.divide(np.zeros(100),42),(-27)**40)),x)
都会产生错误:NotImplemented
我知道随机函数和数字似乎很奇怪,但这个概念应该还是工作,因为它的工作当两个被设置成变量分别。
为什么会发生这种情况?我怎样才能解决它在一般意义上?
非常感谢! Jason
我想你已经陷入了代码中的错误,你可能需要将其报告给numpy的人。为了记录,如果'a'是'np.ndarray','x'是'np.float64',那么'x * a'和'a * x [']'都可以工作,但是没有一个* x','a + x','a/x'或'a-x'。很难理解为什么,如果'a'的__mul__'方法不能处理它,''x'的__rmul__'不会被调用,因为它似乎知道如何处理这种情况... – Jaime
非常感谢审查我的。我会尝试在numpy中报告它是一个问题。 您认为可能有办法解决这个问题吗? – Jason
如果你用'x ['''替换''x''它可以工作,但它是一个讨厌的破解... – Jaime