Создайте новый массив из существующего, используя логическую маску - PullRequest
0 голосов
/ 04 декабря 2018

Я создал логическую маску, скажем, mask, которую я хочу применить к существующему массиву, скажем, old, чтобы создать совершенно новый, скажем, new, в котором сохраняются только ненулевые элементы.Массив new должен иметь меньший размер по отношению к old.

Может ли кто-нибудь предложить мне самый быстрый и более совпадающий способ, не используя, если возможно, функцию numpy.append?

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Скажем, у вас есть:

old = np.array([2,4,3,5,6])
mask = [True, False, True, False, False]

Просто сделайте:

new = old[mask]
print(new)
[2 3]

Я предлагаю вам прочитать о Булевых или «маскирующих» индексных массивах

0 голосов
/ 04 декабря 2018

Просто используйте логическое индексирование

x = x[x!=0]
...