解决方法
把代码中的a += b
改为a = a+b
就可以了:
比如:
import numpy as np
a = np.ones((2,3), dtype=int)
b = np.random.random((2,3))
a += b
最后一行报错:numpy.core._exceptions.UFuncTypeError: Cannot cast ufunc 'add' output from dtype('float64') to dtype('int64') with casting rule 'same_kind'
改为:
a = a+b
就ok啦
问题解析
a+=b
中a
为int32
类型,这种写法会尝试将运算后的结果保存在a
中,但是加法运算后的结果是一个float64
的数据,而float64
不能存放在int32
中,所以a+=b
会报错。