Python 提取Nx3数组中每个列满足条件的特定行

Python 提取Nx3数组中每个列满足条件的特定行,python,arrays,numpy,Python,Arrays,Numpy,假设我有一个数组,它是Nx3,我想要满足以下条件的元素: 4 < col1 < 13, 5 > col2 > 3, 10 > col3 > 6 然后它将提供一个Mx3数组,其中只包含满足所有三个条件的行。对于上面的示例,它输出 9,4,7 我想做一个循环,但我认为numpy或类似的东西必须有更快的东西(例如np.where?为每列构建一个布尔数组: cond1 = (my_array[:, 0] > 4) & (my_array[:, 0]

假设我有一个数组,它是Nx3,我想要满足以下条件的元素:

4 < col1 < 13, 5 > col2 >  3, 10 > col3 > 6
然后它将提供一个Mx3数组,其中只包含满足所有三个条件的行。对于上面的示例,它输出

9,4,7

我想做一个循环,但我认为numpy或类似的东西必须有更快的东西(例如np.where?

为每列构建一个布尔数组:

cond1 = (my_array[:, 0] > 4) & (my_array[:, 0] < 13)
cond2 = (my_array[:, 1] > 3) & (my_array[:, 1] < 5)
cond3 = (my_array[:, 2] > 6) & (my_array[:, 2] < 10)
最后,您可以使用它从数组中选择行:

out = my_array[cond]
你可能想看看。
cond = cond1 & cond2 & cond3
out = my_array[cond]