У меня есть матрица A
формы (N, N, T)
. Тогда у меня есть вектор V
shape (N,)
. Я хочу выполнить следующую операцию A[i, j, ...]
= A[i, j, ...]*V[i]/V[j]
. Я делаю это со следующим l oop, но уверен, что есть способ сделать это с широковещательной передачей.
A = np.random.randint(0, 5, (2, 2, 3))
V = np.array([2, 3])
for i in range(2):
for j in range(2):
A[i, j, ...] *= V[i]
A[i, j, ...] /= V[j]
Я думал сделать это с поэлементным умножением и широковещательной передачей numpy, и я пробую подходы типа A * V[:, None, None]
, но всегда получаю ошибку.
Есть ли более эффективный способ сделать это?