我的数组是一个二维矩阵,除了负数和正数之外,还有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)
我想用一个数字替换所有的正数,用另一个数字替换所有的负数。
我如何使用pythonnumpy来执行?
(声明一下,这个矩阵是geoimage的结果,我想对其进行分类)
解决方案:
事实上,你有 np.nan
在你的数组中应该没有关系。只需使用花哨的索引。
x[x>0] = new_value_for_pos
x[x<0] = new_value_for_neg
如果你想替换你的 np.nans
:
x[np.isnan(x)] = something_not_nan