我有一个一维数组,通过绘制直方图并用高斯拟合它,我想创建一个信号噪声图(使用高斯的西格玛标度)。 我在几个地方都有值 0,但我只想保留值 < 0 和 > 0。
我可以这样写我的脚本吗?
new_SN_map = temp_SN_map[(temp2_SN_map < 0) & (temp_SN_map > 0)]
有没有办法自动删除值0?
请您参考如下方法:
对于 future 的读者,我将重命名您的数组以使其更通用:
array = temp_SN_map
关于你的问题,有不同的方法。对于初学者,您的建议可行:
new_array = array[(array < 0) & (array > 0)]
但还有其他选择:
new_array = array[array != 0] # using only one comparison
import numpy as np
new_array = array[np.nonzero(array)] # using np.nonzero
new_array = array[np.where(array)] # using np.where
但是请注意,每个人都可以做其他人正在做的所有事情,因此这主要取决于您认为最合适/可读的内容,或者如果您关心效率,则需要为最快的时间计时。
