我怎样才能有条件地改变numpy数组中的值,同时考虑到纳数?

use*_*025 13 python statistics open-source numpy gdal

我的数组是一个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)
Run Code Online (Sandbox Code Playgroud)

我想用一个数字替换所有正数,用另一个数字替换所有负数.

如何使用python/numpy执行该操作?

(为了记录,矩阵是geoimage的结果,我想进行分类)

Pie*_* GM 33

np.nan在阵列中的事实无关紧要.只需使用花式索引:

x[x>0] = new_value_for_pos
x[x<0] = new_value_for_neg
Run Code Online (Sandbox Code Playgroud)

如果你想更换你的np.nans:

x[np.isnan(x)] = something_not_nan
Run Code Online (Sandbox Code Playgroud)

有关花哨索引教程NumPy文档的更多信息.


sil*_*ado 7

尝试:

a[a>0] = 1
a[a<0] = -1
Run Code Online (Sandbox Code Playgroud)