Вот и проблема. Скажем, у меня есть матрица А =картирование через 2 numpy.ndarray одновременно
array([[ 1., 0., 2.],
[ 0., 0., 2.],
[ 0., -1., 3.]])
и вектор индексов р = array([0, 2, 1])
. Я хочу превратить матрицу 3x3 A в массив длины 3 (назовите его v), где v [j] = A [j, p [j]] для j = 0, 1, 2. Я могу сделать это следующим образом :
v = map(lambda (row, idx): row[idx], zip(A, p))
Таким образом, для указанных выше матриц а и вектора индексов р я ожидаю получить array([1, 2, -1])
(т.е. 0-й элемент строки 0, второй элемент строки 1, первый элемент строки 2).
Но могу ли я достичь того же результата, используя собственный numpy (т. Е. Без явного перекоса и затем отображения)? Благодарю.
Последняя строка является собственно 'функциональность numpy' – hpaulj