Если вы используете numpy
, лучший способ расставить точки с его помощью - np.where
:
np.where(a>0, a, 0.01*a)
array([[-0.01, 2. ],
[-0.03, 4. ]])
Проблема с вашим кодом в том, что когда вы делаете:
a > 0
array([[False, True],
[False, True]])
Как вы можете видеть, вы получаете массив такой же формы, как и a
, поскольку вы применяете условие ко всем значениям в a
, следовательно, результат операции неоднозначен