У меня есть двумерный массив с более чем 100 000 строками. Мне нужно вернуть подмножество этих строк (и мне нужно выполнить эти операции много тысяч раз, поэтому эффективность важна).
Пример макета такой:
import numpy as np
a = np.array([[1,5.5],
[2,4.5],
[3,9.0],
[4,8.01]])
b = np.array([2,4])
Итак ... Я хочу вернуть массив из a со строками, идентифицированными в первом столбце с помощью b:
c=[[2,4.5],
[4,8.01]]
Разница, конечно, в том, что в a и b гораздо больше строк, поэтому я бы хотел избежать зацикливания. Кроме того, я играл с созданием словаря и использованием np.nonzero, но все еще немного озадачен.
Заранее спасибо за любые идеи!
РЕДАКТИРОВАТЬ: Обратите внимание, что в этом случае b являются идентификаторами, а не индексы. Вот измененный пример:
import numpy as np
a = np.array([[102,5.5],
[204,4.5],
[343,9.0],
[40,8.01]])
b = np.array([102,343])
И я хочу вернуться:
c = [[102,5.5],
[343,9.0]]