Python 从1D数组中删除值
我有一个一维数组,通过绘制一个历史图并用高斯函数拟合它,我想创建一个信噪比图(用高斯函数的sigma标度)。 我在几个地方有值0,但我只想保留<0和>0的值 我可以这样写剧本吗Python 从1D数组中删除值,python,numpy,Python,Numpy,我有一个一维数组,通过绘制一个历史图并用高斯函数拟合它,我想创建一个信噪比图(用高斯函数的sigma标度)。 我在几个地方有值0,但我只想保留0的值 我可以这样写剧本吗 new_SN_map = temp_SN_map[(temp2_SN_map < 0) & (temp_SN_map > 0)] new_snu-map=temp_-snu-map[(temp2_-snu-map0)] 有没有办法自动删除值0?对于将来的读者,我将重命名您的数组以使其更通用: array
new_SN_map = temp_SN_map[(temp2_SN_map < 0) & (temp_SN_map > 0)]
new_snu-map=temp_-snu-map[(temp2_-snu-map<0)和(temp_-snu-map>0)]
有没有办法自动删除值0?对于将来的读者,我将重命名您的数组以使其更通用:
array = temp_SN_map
关于你的问题,有不同的方法。首先,你的建议会奏效:
new_array = array[(array < 0) & (array > 0)]
- 使用
特别适合排除非零值np.nonzero()
- 使用
或np.where()
用于排除特殊值!=0
- 如果要排除某个范围,使用
是很好的(a<0)和(a>0)
但是请注意,它们中的每一个都可以完成其他阵列所做的一切,这主要取决于您认为最合适/可读的内容,或者如果您关心效率,则需要以最快的速度计时。对于未来的读者,我将重命名您的阵列,使其更通用:
array = temp_SN_map
foo is your 1D numpy array.
foo[np.where(foo != 0)]
关于你的问题,有不同的方法。首先,你的建议会奏效:
new_array = array[(array < 0) & (array > 0)]
- 使用
特别适合排除非零值np.nonzero()
- 使用
或np.where()
用于排除特殊值!=0
- 如果要排除某个范围,使用
是很好的(a<0)和(a>0)
但是,请注意,它们中的每一个都可以做其他人正在做的任何事情,这主要取决于您认为什么是最合适/可读的,或者如果您关心效率,您需要以最快的速度计时。我有一个问题,需要进一步说明。假设我有一个二维数组。为什么我应用这个过程时2D数组变成1D数组?因为numpy只能处理有间隙的2D数组,所以它必须将它们转换为1D。您还可以使用
np.mgrid
或np.ogrid
来保存坐标信息。我有一个问题需要进一步讨论。假设我有一个二维数组。为什么我应用这个过程时2D数组变成1D数组?因为numpy只能处理有间隙的2D数组,所以它必须将它们转换为1D。您还可以使用np.mgrid
或np.ogrid
保存坐标信息。
foo is your 1D numpy array.
foo[np.where(foo != 0)]