Ответ 1
Проблема с a /= 10.0
заключается в том, что она изменяет массив на месте и не изменяет dtype массива, поэтому все поплавки преобразуются в целые числа. С другой стороны, a = a / 10.0
создал новый массив, и тип может быть изменен, если создается новый массив.
От docs:
Обратите внимание, что присвоения могут приводить к изменениям при назначении более высоких типов для более низких типов (например, float to ints) или даже исключений (присвоение сложный для float или ints):