В основном, потому что numpy заботится о типах, как предполагает ошибка ("... невозможно принудительно ..." same_kind '").
Вы создаете x
как массив целых чисел, но np.linalg.norm(x)
возвращает число с плавающей запятой, заставляя x / np.linalg.norm(x)
возвращать массив значений с плавающей запятой.
Если вы создадите x
как массив чисел с плавающей запятой:
x = np.array([1.0, 3.0])
, тогда это будет работать
import numpy as np
x = np.array([1.0, 3.0])
x /= np.linalg.norm(x)
print(x)
# [0.31622777 0.9486833 ]