Я хотел бы получить доступ к массиву numpy data
через индекс idx
, но при этом сохранить порядок в data
. Ниже приведен пример доступа к массиву в порядке, отличном от порядка исходного массива.
In [125]: data = np.array([2, 2.2, 2.5])
In [126]: idx=np.array([1,0])
In [127]: data[idx]
Out[127]: array([2.2, 2. ])
Вместо этого я надеюсь получить [2,2.2]. Есть ли высокоэффективный способ сделать это? В моей задаче у меня есть данные с более чем миллионом чисел с плавающей запятой и idx с 0,1 миллиона целых чисел.
Важная информация. При необходимости массив data
можно предварительно обработать. Данные поступают из работы по обработке изображений. Например, если нам нужно заранее отсортировать data
, время, затраченное на сортировку, не будет учитываться при измерении производительности. С другой стороны, idx
- это то, что я бы не стал слишком много обрабатывать во время выполнения, поскольку время, потраченное на это, должно быть подсчитано. Например. сортировка idx с помощью алгоритма O(n log n) может быть слишком дорогой.