Как применить маску к массивному массиву, поддерживающему форму и получающему значения? - PullRequest
2 голосов
/ 11 мая 2019

Я делаю сегментацию изображения, где я создал маску (массив bool).Теперь я хочу извлечь данные изображения в области маски, сохраняя форму массива изображений.

Поскольку данные изображения будут слишком большими, здесь укороченная форма моей проблемы:

import numpy as np

a = np.array([1, 2, 3, 4])
b = np.array([False, False, True, True])

Это то, что я по сути хочу:

c = np.array([False, False, 3, 4])
  = np.array([0, 0, 3, 4])

Я пробовал различные методы нарезки, в том числе:

a[b]
np.extract()
np.choose()
np.take

Однако они либо не возвращают форму массива, либоверните только bool.

Спасибо за любую помощь.BBQuercus

1 Ответ

1 голос
/ 11 мая 2019

Вы можете использовать np.where:

np.where(b, a, 0)
# np.array([0, 0, 3, 4])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...