我有一维数组并通过绘制直方图并用高斯拟合它我想在噪声图上创建一个信号(用我的高斯的西格玛比例)。 我在几个地方有值0但我想只保留值< 0和> 0
我可以像这样编写我的脚本吗?
new_SN_map = temp_SN_map[(temp2_SN_map < 0) & (temp_SN_map > 0)]
有没有办法自动删除值0?
答案 0 :(得分:5)
对于未来的读者,我会重命名你的数组,使其更通用:
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
请注意,每个人都可以做其他人正在做的事情,所以这主要取决于你认为最合适/可读的东西,或者如果你关心效率,你需要把它计算得最快。
答案 1 :(得分:1)
foo is your 1D numpy array.
foo[np.where(foo != 0)]