Не в состоянии понять оператор массива последней строки - PullRequest
0 голосов
/ 05 января 2020
import numpy as np
arr = np.arange(9, dtype = "float").reshape(3,3)
ind1 = np.array([[1,2],[0,1]])
ind2 = np.array([[0,2],[1,2]])
print(arr[ind1, ind2].sum())

Вывод для данного кода выходит на 17.0, но я не могу понять, как работает arr [ind1, ind2]. Пожалуйста, помогите!

1 Ответ

0 голосов
/ 07 января 2020

во-первых, решите эту вещь arr [ind1, ind2], так как ind1 и ind2 оба являются матрицами 2 * 2. Теперь мы должны спарить соответствующие позиции обеих матриц. что дает 4 пары: (1,0); (0,1); (2,2); (1,2).

Теперь найдите значения из arr, которые находятся в этих позициях. и значения получаются равными 3; 1; 8; 5 соответственно. теперь есть операция .sum (). Так что просто добавьте эти значения. и результат получается 17.

Надеюсь, я прояснил ваши сомнения.

...