我有一个形状为dat
的numpy数组((n,3)
),其中n
表示行数,三列表示x
(列0), y
(第1列)和z
(第2列)坐标。
我想排除此numpy数组中的行,其中x
的值位于某个限制(xlow < x < xupp
AND y
的值位于ylow < x < yupp
和之间,其中z
的值位于zlow < x < zupp
之间,我已经拥有[xlow, xupp, ylow, yupp, zlow, zupp]
的值。
我知道如何使用以下方法找到排除条件成立的区域(行):
mark = np.where( ( dat[:,0]>xlow & \
dat[:,0]<xupp ) & \
( dat[:,1]>ylow & \
dat[:,1]<yupp ) & \
( dat[:,2]>zlow & \
dat[:,2]<zupp ) )
但是,我希望这些行被排除在新数组之外。如何在numpy中执行此操作?谢谢。
答案 0 :(得分:0)
尝试对np.where()内部的条件求反。像这样:
mark = np.where( ~( (dat[:,0]>xlow) & \
(dat[:,0]<xupp) & \
(dat[:,1]>ylow) & \
(dat[:,1]<yupp) & \
(dat[:,2]>zlow) & \
(dat[:,2]<zupp) ) )