長時間リーダー、初めてのライター。*: 'numpy.ndarray'と 'numpy.float64'のサポートされていないオペランドタイプ
私はGoogleとスタックのオーバーフローで検索しましたが、この質問に対する一般的な回答は実際には見つかりませんでした。
numpy 1.6.2を使用して、Python 2.7.3で「*: 'numpy.ndarray'と 'numpy.float64'」というエラーが発生しました。
エラーはnumpy配列とnumpy floatを掛けたものですが、毎回発生しません。上記のように定義されたXと
np.multiply(np.square(np.add(np.divide(np.zeros(100),42),-27)**40)),
np.tan(np.abs(np.multiply(-31,41))))
のか、::
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)),x)
の両方がエラーを生成します。両方を個別の変数に設定されたとき、それが働いたとして、私はランダム関数と数字は奇妙に思える知っているが、概念的には、これはまだ動作するはず
をNotImplemented。
どうしてですか?私はそれを一般的な意味でどのように修正できますか?
ありがとうございます! Jason
私はあなたのコード内のバグをキャッチしていると思いますが、あなたはそれを報告したいこと貧弱な人々。レコードの場合、 'a'が' np.ndarray'で 'x'が' np.float64'ならば、 'x * a'と' a * x [...] 'の両方が動作しますが、' a * x'、 'a + x'、' a/x'または 'a-x'は行います。なぜ、 'a'の' __mul__'メソッドがそれを扱うことができない場合、 'x'の' __rmul__'は呼び出されません。なぜなら、ケースを処理する方法を知っているようだからです... – Jaime
ありがとうございますそれを私のために吟味する。私はそれをnumpyの問題として報告しようとします。 これを回避する方法があると思いますか? – Jason
'x'を' x [...] 'に置き換えるとうまくいきますが、厄介なハックです... – Jaime