Python 如何将numpy中的值范围设置为nan?
我的数据集如下所示:Python 如何将numpy中的值范围设置为nan?,python,numpy,Python,Numpy,我的数据集如下所示: >>> difference array([[ -1, 0, 4], [-20, 2, -1], [ 2, -20, 0]]) 我希望将+2到-2之间的值替换为nan 结果数组应该如下所示 >>> difference array([[ nan, nan, 4.], [-20., nan, nan], [ nan, -20., nan]]) 根据
>>> difference
array([[ -1, 0, 4],
[-20, 2, -1],
[ 2, -20, 0]])
我希望将+2到-2之间的值替换为nan
结果数组应该如下所示
>>> difference
array([[ nan, nan, 4.],
[-20., nan, nan],
[ nan, -20., nan]])
根据浮点运算使用
np.abs(差分),您可以执行以下操作:
In [7]: valid =abs(difference)>2
In [8]: valid/valid *difference
Out[8]:
array([[ nan, nan, 4.],
[-20., nan, nan],
[ nan, -20., nan]])
np.其中
不是严格必需的。还可以使用真值数组为差异数组编制索引。例如,差异[np.abs(差异)
In [5]: difference
Out[5]:
array([[ -1, 0, 4],
[-20, 2, -1],
[ 2, -20, 0]])
In [6]: np.where(np.abs(difference)<=2,np.nan,difference)
Out[6]:
array([[ nan, nan, 4.],
[-20., nan, nan],
[ nan, -20., nan]])
In [7]: valid =abs(difference)>2
In [8]: valid/valid *difference
Out[8]:
array([[ nan, nan, 4.],
[-20., nan, nan],
[ nan, -20., nan]])