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列的行?
答案 0 :(得分:1)
使用切片版np.isclose
与a
进行比较,然后查找每行的所有匹配项,我们可以使用np.all
或np.logical_and.reduce
。最后,索引到输出的输入数组。
因此,两个解决方案 -
a[np.isclose(a[:,:2],b).all(axis=1)]
a[np.logical_and.reduce( np.isclose(a[:,:2],b), axis=1)]