Рекурсивное добавление матричного элемента для многомерного массива - PullRequest
1 голос
/ 15 октября 2019

Если размер матрицы равен (3, 4, 4);

new_matrix = matrix[0] + matrix[1] + matrix[2]

Как сделать поэлементное добавление каждого элемента матрицы. '

Пример:

matrix = np.array([[[1, 2], [3, 4]], [[4, 5], [6, 7]], [[8, 9], [10, 11]]])

new_matrix = np.zeros(shape=(2, 2))

for i in range(matrix.shape[0]):
    new_matrix += matrix[i]

print(new_matrix)

Ответ: [[13, 16], [19, 22]]

Вопрос: Как бы я обходился без цикла for?

1 Ответ

1 голос
/ 15 октября 2019

Вы можете использовать функцию np.sum, доступную в numpy. Вы можете указать ось, вдоль которой вы хотите выполнить сложение, иначе она даст общую сумму всех элементов в матрице.

Для вашего примера,

matrix = np.array([[[1, 2], [3, 4]], [[4, 5], [6, 7]], [[8, 9], [10, 11]]])
print(np.sum(matrix,axis=0))

Вывод

[[13 16]
 [19 22]]

Это ссылка на документацию np.sum: np.sum

...