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

发布于 2021-01-29 14:59:04

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

关注者
0
被浏览
84
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看