умножение матрицы на каждый столбец и сумму - PullRequest
0 голосов
/ 11 ноября 2018

У меня есть несколько матриц:

A = np.array([[0.8, 0.2],
              [0.4, 0.6]])
B = np.array([0.4, 0.2])
C = np.array([0.28, 0.06])

И что я хочу сделать, это:

S = A.shape[0]
what_I_need = np.zeros([S])
for s in range(S):
    what_I_need[s] = np.sum(A[:, s] * C) * B[s]
print(what_I_need)

Результат

[0.0992 0.0184]

Есть ли элегантный или pythonic способ сделать это без цикла for? Спасибо

1 Ответ

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

С matrix-multiplication -

A.T.dot(C)*B # or C.dot(A)*B

За один звонок np.einsum -

np.einsum('ij,i,j->j',A,C,B) #use `optimize` flag for better perf.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...