Самый быстрый способ замаскировать строки двумерного массива с заданным логическим вектором одинаковой длины?

1

У меня есть numpy-логический вектор формы 1 x N и 2d-массив с формой 160 x N. Что такое быстрый способ подмножества столбцов массива 2d, так что для каждого индекса булева вектора, имеющего True в ней, столбец сохраняется, и для каждого индекса логического вектора, который имеет False в нем, столбец отбрасывается?

Если вы вызываете векторную маску и функции массива, я обнаружил, что следующее слишком медленное: np.array([f[mask] for f in features])

Есть ли способ лучше? Я чувствую, что должно быть, правда?

  • 2
    features[:,mask.ravel()] или features[:,mask[0]] ?
Теги:
data-science
arrays
numpy

1 ответ

0

Вы можете попробовать это,

    new_array = 2d_array[:,bool_array==True]

Поэтому в зависимости от осей вы можете выбрать, какой из них вы хотите удалить. Если вы получите массив 1-й, вы можете просто изменить его и получить требуемый массив. Этот метод также будет быстрее.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню