首页 > 解决方案 > 如何选择数组的行,所有单元格都通过定义的逻辑测试?

问题描述

我想选择数组的行,所有单元格都通过定义的逻辑测试。

例如,考虑以下数组 A:

A = np.array([[1,3,5,7,9,10],[2,4,6,8,11,15],[13,15,0,7,3,1]])

以及逻辑条件:

(A>1) & (A<15)

我想选择所有单元格都满足逻辑条件的行,因此在此示例中我希望选择:

[1,3,5,7,9,10]

我尝试了以下命令:

A_filtered = A[(A>1) & (A<15)]

但是,即使(A>1) & (A<15)是一个 3x6 布尔数组,结果A_filtered实际上是通过逻辑测试的数组的 13 个值的列表。

我应该使用哪些命令来选择所有单元格都通过逻辑条件的行?

提前谢谢了!

标签: pythonnumpy

解决方案


可以通过列表理解来解决,但也可以直接在 numpy.

[x for x in A if all(x >= 1) and all(x < 15)]

推荐阅读