In [1]: x = np.arange(1,4)
In [2]: x /= 10
Traceback (most recent call last):
Input In [2] in <cell line: 1>
x /= 10
UFuncTypeError: Cannot cast ufunc 'true_divide' output from dtype('float64') to dtype('int64') with casting rule 'same_kind'
字符串 如果数组是浮动的,就不会有这样的问题:
In [3]: y = x.astype(float)
In [4]: y /= 10
In [5]: y
Out[5]: array([0.1, 0.2, 0.3])
2条答案
按热度按时间klsxnrf11#
如果
x
是一个整型dtype数组,你会得到这个casting
错误:字符串
如果数组是浮动的,就不会有这样的问题:
型
*= 0.1
也会引发转换错误。任何试图将浮点数放入int数组的操作。像x[:] = 1.1
这样的x[:] = 1.1
会默默地将浮点数转换为整数-这是更常见的困惑原因。5f0d552i2#
字符串