У меня есть массив, называемый X, где каждый элемент сам является 2d-вектором.Диагональ этого массива заполнена только нулевыми векторами.Теперь мне нужно нормализовать каждый вектор в этом массиве, не изменяя его структуру.
Сначала я попытался вычислить норму каждого вектора и поместить его в массив, называемый N. После этого я хотел разделитькаждый элемент X каждым элементом N. У меня возникли две проблемы:
1) Многие записи в N равны нулю, что, очевидно, является проблемой, когда я пытаюсь разделить их.
2) Формы массивов не совпадают, поэтому np.divide () работает не так, как ожидалось.
Кроме того, я не думаю, что будет хорошей идеей вычислять N следующим образом,потому что позже я хочу сделать то же самое с более чем двумя векторами.
import numpy as np
# Example array
X = np.array([[[0, 0], [1, -1]], [[-1, 1], [0, 0]]])
# Array containing the norms
N = np.vstack((np.linalg.norm(X[0], axis=1), np.linalg.norm(X[1],
axis=1)))
R = np.divide(X, N)
Я хочу, чтобы вывод выглядел так:
R = np.array([[[0, 0], [0.70710678, -0.70710678]], [[-0.70710678, 0.70710678], [0, 0]]])