По шагам:
import numpy as np
a = np.array([[0,1,2],[3,4,5],[6,7,8],[9,10,11]])
print(a)
дает 2d массив a
:
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
Тогда:
row = np.array([[0,0],[3,3]])
присваивает 2d массиву row
значения [0,0]
и [3,3]
:
array([[0, 0],
[3, 3]])
Тогда:
col = np.array([[0,2],[0,2]])
присваивает 2d массиву col
значения [0,2]
и [0,2]
:
array([[0, 2],
[0, 2]])
Наконец:
b = a[row,col]
присваивает b
значения, заданные a[0,0]
, a[0,2]
для первого ряда, a[3,0]
, a[3,2]
для второго ряда, то есть:
array([[ 0, 2],
[ 9, 11]])
Откуда b[0,0]
<- <code>a[0,0]? Это происходит от комбинации row[0,0]
, которая равна 0, и col[0,0]
, которая равна 0.
А как насчет b[0,1]
<- <code>a[0,2]? Это происходит от комбинации row[0,1]
, которая равна 0, и col[0,1]
, которая равна 2.
и т. Д.