Numpy:如何根据某些列选择完整行

时间:2017-09-07 22:16:32

标签: python numpy

a = np.array([[1.,2.,3.],
          [3.,4.,2.],
          [8.,1.,3.]])
b = [8.,1.]
c = a[np.isclose(a[:,0:2],b)]
print(c)

我想基于几列选择a中的完整行。我的尝试在上面。

如果我在这种情况下也包括最后一列,它也可以工作,但我不关心最后一列。如何根据2上的条件选择包含3列的行?

1 个答案:

答案 0 :(得分:1)

使用切片版np.isclosea进行比较,然后查找每行的所有匹配项,我们可以使用np.allnp.logical_and.reduce。最后,索引到输出的输入数组。

因此,两个解决方案 -

a[np.isclose(a[:,:2],b).all(axis=1)]
a[np.logical_and.reduce( np.isclose(a[:,:2],b), axis=1)]