1. ホーム
  2. python

[解決済み] Numpy.dot TypeError: ルール 'safe' に従って配列データを dtype('float64') から dtype('S32') にキャストできません。

2022-02-15 11:54:08

質問事項

を使用すると、なぜこのエラーが発生するのでしょうか? np.dot(a,b.T) :

TypeError: Cannot cast array data from dtype('float64') 
               to dtype('S32') according to the rule 'safe'

a と b はタイプ numpy.ndarray . 私の NumPy のバージョンは1.11.0です。

解決方法は?

BrenBarnとWarren Weckesserの意見を取り入れて、(文字列をfloatに変換して)実行するコードスニペットを提供するだけです。

a = map(lambda x: float(x),a)
b = map(lambda x: float(x),b)
np.dot(a,b.T)

または、@JLT が提案したように、もっとシンプルにすることもできます。

a = map(float,a)
b = map(float,b)
np.dot(a,b.T)

しかし、Warren Weckesserがすでに言っているように、配列の型を確認する必要があります。