Сообщить о всей ошибке TypeError!
----> 3 a += b
TypeError: Cannot cast ufunc add output from dtype('float64') to
dtype('int64') with casting rule 'same_kind'
a
является целым числом dtype, верно?b
это число с плавающей запятой.Добавьте число с плавающей точкой и целое число, и результатом будет число с плавающей точкой.Но ожидается, что a+=...
поместит это число в a
, целочисленный массив.numpy
не хочет этого делать.
Но это нормально:
In [3]: a = a + b
In [4]: a
Out[4]:
array([[1.01407496, 1.96122364, 1.91447533],
[1.68130058, 1.99773138, 1.50043386]])
Исходный целочисленный массив a
теперь заменен массивом с плавающей точкой.Это присвоение уровня Python, когда a+=...
пытается изменить исходный массив a
(на месте).Различие важно.