Фон
У меня есть 4 массива Numpy 1 D длиной 107952899. Я комбинирую вышеупомянутый 1d как массив D и переставляю их порядка (107952899, 4)
и сохраняю их data1.Я устанавливаю имена столбцов для моего массива.(e.g : data1[:, 0] = Index)
(Like above, 0th col - Index, 1st- Time, 2nd- Speed, 3rd col - Brake)
Я следил за процессом фильтрации, как скорость> 20 и Тормоз> 30, используя следующую команду.
data1 = data1[(Speed > 20) & (Brake > 30)]
Теперь data1 shape changed to (35778, 4)
Требование
Мне нужны верхние значения N в столбце Тормоз с соответствующим столбцом индекса.
(Так что я подумал о сортировке столбца с использованием argsort
)
Что я пробовал
data1 = data1 [data1 [:, Brake].argsort()[::-1][: N]]
Решение проблем
Когда я выполнил это, я получил IndexError : arrays used as indices must be Integers (or boolean) type
Что я сделал после моей ошибки:
Мой dtype of data1 is float
.Хотя я должен изменить весь массив на int.
Но столбец «Тормоз» содержит такие элементы, как [30.4,30.8,30.9 .....12.053,60.50]
. Я не должен переходить на int, поскольку я хочу найти максимальный элемент.
Evenя попытался изменить dtype to int using astype
, но проблема все еще не устранена
Запрос
Как исправить вышеуказанную ошибку, так что мое требование становится полным