Допустим, у меня есть Numpy массив со следующей формы:фильтр 2D-NumPy массив из массива значений
nonSortedNonFiltered=np.array([[9,8,5,4,6,7,1,2,3],[1,3,2,6,4,5,7,9,8]])
Я хочу:
- сортирует массив в соответствии с nonSortedNonFiltered [1 ] - Фильтр массива в соответствии с nonSortedNonFiltered [0] и массив значений
настоящее время я сортировки с:
sortedNonFiltered=nonSortedNonFiltered[:,nonSortedNonFiltered[1].argsort()]
Что дает: np.array([[9 5 8 6 7 4 1 3 2],[1 2 3 4 5 6 7 8 9]])
Теперь я хочу, чтобы фильтровать sortedNonFiltered из массива значений, например:
sortedNonFiltered=np.array([[9 5 8 6 7 4 1 3 2],[1 2 3 4 5 6 7 8 9]])
listOfValues=np.array([8 6 5 2 1])
...Something here...
> np.array([5 8 6 1 2],[2 3 4 7 9]) #What I want to get in the end
Примечание: Каждое значение в колонке моего 2D массива является эксклюзивным.
ничего себе, что это прекрасно! Я выполнял цикл, но это было слишком медленно для моего огромного количества значений. Это лучше работает –
@OdgyGsf Да, 'np.in1d' достаточно эффективен для решения таких случаев. – Divakar