我有一维数组。我们称之为grid_pro_x。它显示粒子的位置。它从-100到100微米。我还有另一个1D阵列,Px_pro是粒子的能量。 我想为那些位置超过10微米的粒子提取Px_pro数组。我做了类似的事情
len= len(grid_pro_x)
print len ,' Number of initial X point'
<<<<320000
grid = np.where(grid_pro_x<10.e-06,0.,grid_pro_x)
grid = np.extract(grid !=0,grid)
print np.shape(grid),' Number of elements grid'
<<<24000
np.where(grid_pro_x<10.e-6,0.,Px_pro)
Px_pro_new = np.extract(Px_pro !=0,Px_pro)
print np.shape(Px_pro_new),' Number of elements Px_pro-new'
<<<<320000
你可以在最后一行看到而不是24000我有320000.谁能帮助我,我必须做什么?
由于
答案 0 :(得分:1)
无需使用np.where()
。
numpy.abs(grid_pro_x) > 10e-6
将为您提供一个布尔数组,用于标记哪些元素符合条件。然后,您可以使用此数组从pro_x
:
pro_x[numpy.abs(grid_pro_x) > 10e-6]