查找满足两个列值条件的数组行

用户名

我有一个具有许多行和3列的numpy整数数组。显示了一个示例。第二和第三列表示索引,每个第二列的值<对应的第三列的值。

我也有一个变量k。在此示例中,我将使用k = 4

任务:我想查找所有数组行,其中k严格不在第二列和第三列中的值之间因此,在每个“幸存”行中,第二列和第三列的值都将小于k,或者都大于k。

import numpy as np

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

m = arr[((arr[:,1] > k) & (arr[:,2] > k)) | ((arr[:,1] < k) & (arr[:,2] < k))]

m的代码(上面)工作正常,可以正确生成以下数组:

[[-6, 1, 2],
 [-2, 5, 9],
 [-4, 7, 8]]

这是我的问题-是否可以简化或更好地制定m?我尝试切片(即:在m的表达式中使用arr [:,1:]或arr [:,[1,2]])没有成功。另外,我对于“ |”是否有点粗略 是执行逻辑“或”的正确方法。

谢谢

用户名

您可以使用向量代数运算。我不确定它是否会简化,但是它很时髦。

arr[np.prod(arr[...,1:3] < k, axis=1) + np.prod(arr[...,1:3] > k, axis=1) > 0,:]

背后的逻辑是检查两列是否均小于(或大于)k并乘以对应于an的结果,and然后将结果向量相加并检查它们是否大于1(应对应于)or

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫-查找两个或多个满足条件的行

查找同时满足两个条件的行

消除不满足两个条件的数组行

R如果满足两个条件,则更改列的值

当行中满足两个条件时,从列中返回值的最后一个实例

在满足特定条件的两个numpy数组中查找公用索引

如何在两个numpy数组上查找满足不同条件的行数

Hive:如果两个表之间满足条件,则查找唯一值

查找满足条件的两个日期之间的总 ID

在两个不同的列中满足两个条件的观察值的百分比(以r表示)

使用 Python 删除满足两个特定条件(值)的数据帧行

查找匹配两个条件的行

如何从满足 DAX 中两个或多个 IF 条件的列中找到最大值

如何在Excel中计算满足两个条件的列值的中位数?

如何获得满足两个条件的第三列值?

满足条件时汇总两个值

如果满足两个条件,则Javascript值的总和

查找在两个不同列中包含两个单元格值的行

Pandas - 选择其他列行满足两个条件的索引

在两列中查找相应行中这两个单元格之间满足IF AND的行

如果python中满足两个列值的组合,则删除行

如果其他两个列不满足过滤条件,则从该列取回值

查找给定值属于数组的哪个两个值

保留满足两个条件的组

通过搜索和条件查找两个列值之间的差异

比较两个大列表以查找满足python中条件的元素对

如何根据两个行条件选择一个列值?

在两个numpy数组中查找最接近的值

查找数组中两个最小值的索引