У меня есть numpy-логический вектор формы 1 x N и 2d-массив с формой 160 x N. Что такое быстрый способ подмножества столбцов массива 2d, так что для каждого индекса булева вектора, имеющего True в ней, столбец сохраняется, и для каждого индекса логического вектора, который имеет False в нем, столбец отбрасывается?
Если вы вызываете векторную маску и функции массива, я обнаружил, что следующее слишком медленное: np.array([f[mask] for f in features])
Есть ли способ лучше? Я чувствую, что должно быть, правда?
Вы можете попробовать это,
new_array = 2d_array[:,bool_array==True]
Поэтому в зависимости от осей вы можете выбрать, какой из них вы хотите удалить. Если вы получите массив 1-й, вы можете просто изменить его и получить требуемый массив. Этот метод также будет быстрее.
features[:,mask.ravel()]
илиfeatures[:,mask[0]]
?