У меня две матрицы, A
и B
:
A = array([[2., 13., 25., 1.], [ 18., 5., 1., 25.]])
B = array([[2, 1], [0, 3]])
Я хочу индексировать каждую строку A
с каждой строкой B
, создавая срез:
array([[25., 13.], [18., 25.]])
То есть, я действительно хочу что-то вроде:
array([A[i,b] for i,b in enumerate(B)])
Есть ли способ представить это прямо? Лучшее, что я могу сделать, это "плоский взлом":
A.flat[B + arange(0,A.size,A.shape[1])[:,None]]