Если вы хотите установить массив 0, тогда я думаю, что нет необходимости копировать исходный массив. Просто создайте массив нулей и установите соответствующие индексы для nan.
import numpy as np
a = np.array([1, 2, np.nan, 4, 5, np.nan])
b = np.zeros(a.shape)
b[np.isnan(a)] = np.nan
выходы
>>> b
[ 0. 0. nan 0. 0. nan]
edit: теперь, когда вы обновили проблему, вы можете использовать это вместо:
import numpy as np
a = np.array([1, 2, np.nan, 4, 5, np.nan])
b = np.zeros(a.shape)
c = np.array([10, 11, 12, 13, 14, 15])
b[np.isnan(a)] = c[np.isnan(a)]
print(b)
1010 * выходы *
>>> b
[ 0. 0. 12. 0. 0. 15.]
не стесняйтесь менять dtype на int, если это то, что вы также используете