Повторяющиеся продукты Numpy Array Dot - PullRequest
0 голосов
/ 30 апреля 2018

Давайте предположим, что у нас есть numy массивы A.shape = (1, 2) и B.shape = (2, 2) и число X.

Если X = 1, мы хотим получить результат = A.dot(B)

Если X = 2, мы хотим получить результат = (A.dot(B)).dot(B)

Если X = 3, мы хотим получить результат = ((A.dot(B)).dot(B)).dot(B)

Как мы можем написать функцию на Python, которая дает нам правильный результат на основе 9n X? Попытка перебрать точечные продукты, основанные на X, но код очень грязный и не работает должным образом.

1 Ответ

0 голосов
/ 30 апреля 2018

Один вкладыш, использующий коммутативность умножения матриц и matrix_power:

A.dot(np.linalg.matrix_power(B, X))
...