Простите меня, если это избыточно или супер базово. Я прихожу на Python/Numpy из R и с трудом переворачиваю вещи в голове.
У меня есть n-мерный массив, который я хочу отсортировать, используя другой n-мерный массив значений индекса. Я знаю, что могу обернуть это в цикле, но кажется, что должен быть очень сжатый способ Numpyonic избить это в подчинении. Здесь мой примерный код для установки проблемы, где n = 2:
a1 = random.standard_normal(size=[2,5])
index = array([[0,1,2,4,3] , [0,1,2,3,4] ])
так что теперь у меня есть массив из 2 x 5 случайных чисел и индекс 2 x 5. Я прочитал справку для take()
около 10 раз, но мой мозг, очевидно, не сдерживает ее.
Я подумал, что это может привести меня туда:
take(a1, index)
array([[ 0.29589188, -0.71279375, -0.18154864, -1.12184984, 0.25698875],
[ 0.29589188, -0.71279375, -0.18154864, 0.25698875, -1.12184984]])
но это явно переупорядочивает только первый элемент (я полагаю, из-за уплощения).
Любые подсказки о том, как я получаю, откуда я пришел к решению, которое сортирует элемент 0 из a1 по элементу 0 индекса... element n?