1. ホーム
  2. python

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

2022-01-28 12:13:55

質問事項

を使用すると、なぜこのエラーが発生するのでしょうか? 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がすでに言っているように、配列の型を確認する必要があります。