Python 我如何根据nan数有条件地更改numpy数组中的值?
我的数组是一个二维矩阵,除了负值和正值外,它还有numpy.nan值:Python 我如何根据nan数有条件地更改numpy数组中的值?,python,open-source,numpy,statistics,gdal,Python,Open Source,Numpy,Statistics,Gdal,我的数组是一个二维矩阵,除了负值和正值外,它还有numpy.nan值: >>> array array([[ nan, nan, nan, ..., -0.04891211, nan, nan], [ nan, nan, nan, ..., nan, nan, 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执行该操作
(对于记录,矩阵是geoimage的结果,我想对其进行分类)尝试:
a[a>0] = 1
a[a<0] = -1
a[a>0]=1
a[a数组中有np.nan
这一事实应该无关紧要。只需使用花哨的索引:
x[x>0] = new_value_for_pos
x[x<0] = new_value_for_neg
有关花式索引的详细信息以及添加或减去当前值的。(np.nan不受影响)
数组中有正数,它们只是不显示在预览中。如果有单个转换,则效果会更好,因为如果您的方法(例如,new\u value\u for\u pos<0
)不起作用。
x[np.isnan(x)] = something_not_nan
import numpy as np
a = np.arange(-10, 10).reshape((4, 5))
print("after -")
print(a)
a[a<0] = a[a<0] - 2
a[a>0] = a[a>0] + 2
print(a)
[[-10 -9 -8 -7 -6]
[ -5 -4 -3 -2 -1]
[ 0 1 2 3 4]
[ 5 6 7 8 9]]
after -
[[-12 -11 -10 -9 -8]
[ -7 -6 -5 -4 -3]
[ 0 3 4 5 6]
[ 7 8 9 10 11]]