Python векторизация матрично-векторной операции - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть Матрица A с формой (2,2, N) и Матрица V с формой (2, N)

Я хочу векторизовать следующее:

F = np.zeros(N)
for k in xrange(N):
    F[k] = np.dot( A[:,:,k], V[:,k] ).sum()

В любом случае это можно сделать с помощью tenordot или любой другой функции numpy без явного зацикливания?

1 Ответ

0 голосов
/ 22 ноября 2018

С np.einsum -

F = np.einsum('ijk,jk->k',A,V)

Мы можем оптимизировать его дополнительно с флагом optimize (проверьте документы), установленным как True.

...