Я пытаюсь проиндексировать 2-мерный нудистый ndarray с помощью другого 2-мерного нудистого ndarray.
Эффект, который я хотел бы, чтобы каждая строка в массиве индексации выбирала элементы в соответствующей строкеИндексируемый массив.То есть я хотел бы, чтобы строка i или мой индексный массив индексировали элементы строки i индексируемого массива (но не других строк).
В настоящее время, однако, кажется, что когда я пытаюсь проиндексировать свой массивиндексный массив транслируется по каждой строке индексируемого массива.
Массивы, с которыми я работаю, - это (3, 1001) массив и (3, 5) массив.Я пытаюсь проиндексировать массив (3, 1001) с помощью массива (3, 5) и выбрать 5 элементов из каждой 1001-мерной строки индексируемого массива.
Например, вот поведение, которое яwant:
predictions_val[0][top_5[0]]
array([ 0.00222665, 0.00606673, 0.03681596, 0.85334235, 0.01018796], dtype=float32)
predictions_val[1][top_5[1]]
array([ 0.00106781, 0.00407206, 0.026693 , 0.90732217, 0.0234713 ], dtype=float32)
predictions_val[2][top_5[2]]
array([ 0.00112946, 0.0016792 , 0.06700196, 0.00367496, 0.87981129], dtype=float32)
Вот поведение, которое я получаю при попытке одновременного индексирования:
predictions_val[:,top_5]
array([[[ 2.22665281e-03, 6.06672745e-03, 3.68159562e-02,
8.53342354e-01, 1.01879649e-02],
[ 5.12826555e-05, 8.53342354e-01, 1.41255208e-03,
2.77817919e-04, 1.01879649e-02],
[ 2.17145571e-04, 2.77817919e-04, 8.53342354e-01,
1.41255208e-03, 1.01879649e-02]],
[[ 5.50073055e-05, 8.74355683e-05, 2.71841218e-05,
4.07205941e-03, 2.34712958e-02],
[ 1.06781046e-03, 4.07205941e-03, 2.66929977e-02,
9.07322168e-01, 2.34712958e-02],
[ 5.84539608e-04, 9.07322168e-01, 4.07205941e-03,
2.66929977e-02, 2.34712958e-02]],
[[ 1.05086729e-04, 2.83752568e-04, 7.68712547e-04,
6.70019612e-02, 8.79811287e-01],
[ 4.69864433e-04, 6.70019612e-02, 3.67495860e-03,
1.67920033e-03, 8.79811287e-01],
[ 1.12945912e-03, 1.67920033e-03, 6.70019612e-02,
3.67495860e-03, 8.79811287e-01]]], dtype=float32)
Каждая нужная мне строка существует в возвращаемых массивах, но кажется, что top_5массив транслируется по самому ряду.