У меня есть 2 Numpy массива длиной 107952899.
a = []
b = []
Я хочу найти индексы внутримассив a
, который больше 20. Я сохраняю этот результат в переменной c
:
c = np.where(a > 20)
Затем, используя c
(в котором хранятся индексы), я хочу найти значениявнутри массива NumPy b
относительно соответствующих индексов.Я сохраняю это в d
:
d = b[c]
Затем я хочу, чтобы верхние n
максимальные элементы были в d
с фактическими индексами.С этими индексами я буду выполнять дальнейшие вычисления.
d.argsort([-N])[::-1]
Я пытался использовать argsort
, но получаю следующую ошибку:
IndexError: Invalid index to scalar value
Итак, подведу итог:2 массиваВ первом массиве я должен отфильтровать значения, которые больше 20. Затем я должен найти соответствующие значения во втором массиве, используя отфильтрованные индексы первого массива.После этого мне нужно отсортировать второй массив в порядке убывания и получить эти индексы для дальнейших вычислений.
Я попробовал описанный выше метод, введя эти массивы в Pandas DataFrame, и хотя он работает нормально, я предпочитаю делать это напрямую.
Каков наилучший способ сделать это?