Установка определенных значений в 0 в массиве NumPy - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть два массива (gt и pred) со значениями от 0 до 4.

Форма этих двух массивов (1, 1, 93, 349, 219).Моя цель - создать маску для игнорирования и умножить ее на gt и pred, чтобы игнорировать значение в двух массивах.Однако я сталкиваюсь с проблемой

ignore_value=4
if ignore_value is not None:
    mask[gt!=ignore_value]=1  # ignore value mask
    gt=mask*gt
    pred=mask*pred  # ignore value mask for pred


print "after removing ignore value: ", np.unique(gt),np.unique(pred)
output: after removing ignore value:  [0 1 2 3] [0 1 2 3 4]

, почему он не удаляет значение игнорирования в pred?

1 Ответ

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

IMO, лучшим решением было бы использовать логическое индексирование и явно установить ячейки равными 0.

gt[gt == ignore_value] = 0
pred[pred == ignore_value] = 0

В общем случае не гарантируется, что gt и pred будут иметь ignore_valueв тех же ячейках, поэтому использование одной маски для обеих из них нецелесообразно.

Однако приведенный выше код работает и более эффективен, поскольку работает только с небольшой частью массива, а не со всемиэто (как умножение их будет делать).Выход

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...