Вы также можете достичь этого без маскировки, используя параметры where
и out
true_divide
.
a = np.array([[-4, -2, 0],
[-5, 0, 4],
[ 0, 6, 5]], dtype=np.float)
np.true_divide(1, a, out=a, where=a<0)
. Получите результат:
array([[-0.25, -0.5 , 0. ],
[-0.2 , 0. , 4. ],
[ 0. , 6. , 5. ]])
where=
параметру передается массив тех же размеров, что и ваши два входа.Где это оценивается как True
, деление выполняется.Если значение равно False
, исходный ввод, переданный через out=
, выводится в результат без изменений.