ndarray 的联合条件截断

joint conditional truncation for ndarray

给定一个二维 numpy 数组

array([[-1.00, 1.00 ],
       [-2.00, 2.00 ],
       [ 2.00, 3.00 ],
       [ 1.00, 3.00 ],
       [-4.00,-3.00]])

我希望检索均超过给定值的行。也就是说,假设所有值都大于或等于 1。这将是所需的输出。

array([[ 2.00, 3.00 ],
       [ 1.00, 3.00 ]])

对于一维数组,可以像

一样直接完成
sample[sample >=1]

但是,它不适用于 dim > 1 的数组。上面的语法也适用于 pandas 数据帧,但我不想将所有内容都转换为数据帧以进行截断.

有什么优雅的方法吗?感谢您的帮助。

您可以使用 np.array.all(axis=1):

>>> sample[(sample >= 1).all(axis=1)]
array([[2., 3.],
       [1., 3.]])