当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《Numpy.dotTypeError:根据规则'safe',无法将数组数据从dtype('float64')转换为dtype('S32')》经验,为你挑选了2个好方法。

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



1> Romeo Kienzl..:

只需从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所说,你应该检查数组的类型,很可能已经包含了浮点数.


不会映射(浮点数,a)更简单?

2> 小智..:

尝试将整个numpy数组转换为float示例:

train = train.astype(float)
train_target = train_target.astype(float)

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有