Pythonic способ замены подмассива nan массивом того же размера - PullRequest
3 голосов
/ 18 октября 2019

Предположим, я дал массив numpy, например:

a = np.array([1, 2, 3, 4, np.nan, 5, np.nan, 6, np.nan])
# [1, 2, 3, 4, nan, 5, nan, 6, nan]

Я знаю количество nan значений в массиве и имею соответствующий массив для замены, например:

b = np.array([12, 13, 14])
# [12, 13, 14]

Каков питонный способ замены массива b на все значение nan, чтобы я получил результат:

[1, 2, 3, 4, 12, 5, 13, 6, 14]

1 Ответ

6 голосов
/ 18 октября 2019

Выполните логическое индексирование для a, используя np.isnan и замените на b как:

a[np.isnan(a)] = b

print(a)
# array([ 1.,  2.,  3.,  4., 12.,  5., 13.,  6., 14.])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...