使用时为什么会出现此错误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所说,你应该检查数组的类型,很可能已经包含了浮点数.
尝试将整个numpy数组转换为float示例:
train = train.astype(float) train_target = train_target.astype(float)