我的数组是一个2D矩阵,除了负值和正值外,它还有numpy.nan
值:
>>> array
array([[ nan, nan, nan, ..., -0.04891211,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan],
...,
[-0.02510989, -0.02520096, -0.02669156, ..., nan,
nan, nan],
[-0.02725595, -0.02715945, -0.0286231 , ..., nan,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan]], dtype=float32)
(数组中有正数,它们只是不会显示在预览中。)
我想用一个数字替换所有的正数,用另一个数字替换所有的负数。
我如何使用python/numpy来执行该操作?
(对于记录,矩阵是地理图像的结果,我想对其进行分类)
4条答案
按热度按时间7bsow1i61#
阵列中有
np.nan
这一事实应该无关紧要。只需使用花哨的索引:如果您想要更换您的
np.nans
:更多关于奇特索引教程和NumPy documentation的信息。
2eafrhcq2#
尝试:
oxiaedzo3#
向当前值加或减(np.nan不受影响)
输出
3lxsmp7m4#
如果
new_value_for_pos
为负,则Pierre's answer不起作用。在这种情况下,您可以在链中使用np.where()
:结果: