一尘不染

Numpy.dot TypeError:无法根据规则“安全”将数组数据从dtype('float64')转换为dtype('S32')

python

为什么在使用时出现此错误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。


阅读 757

收藏
2021-01-20

共1个答案

一尘不染

只需从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所说的那样,您应该检查数组的类型,很可能其中一个已经包含浮点数。

2021-01-20