長時間讀寫器,第一次寫入。不受支持的操作數類型爲*:'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