Как обновить пустой массив на основе маскированного массива с теми же размерами и формой - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть два массива одинакового размера и формы.этот массив nv_arr имеет нулевые значения (-9999).Я создал замаскированный массив nv_mask, чтобы замаскировать все значения, кроме -9999, чтобы как-то "обновить" этот массив out по позиции, без необходимости создавать новый массив.

Другими словами,цифры 0, 3, 6 и 2 должны быть заменены на -9999.Как я могу это сделать?

    >>> nv_arr
     ([[-9999,   123,   -9999],
       [-9999,   444,   444],
       [-9999,   323,   323]])

>>> nv_mask
[[-9999 -- -9999]
 [-9999 -- --]
 [-9999 -- --]]

 >>> out
      ([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

1 Ответ

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

Предполагая, что nv_mask является MaskedArray, вы можете вызвать атрибут .mask для установки значений:

>>> out[~nv_mask.mask] = -9999
>>> out 
array([[-9999,     1, -9999],
       [-9999,     4,     5],
       [-9999,     7,     8]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...