Python 如何使用Numpy在不同数组中查找相同的行,而不考虑元素顺序?

Python 如何使用Numpy在不同数组中查找相同的行,而不考虑元素顺序?,python,pandas,numpy,Python,Pandas,Numpy,我正在做一个项目,偶然发现了这个问题。 我有两个形状为(8,3)和(2,2)的数组A和B。我如何才能找到A中包含B中每行元素的所有行,而不考虑B中元素的顺序 A = np.random.randint(0,5,(8,3)) B = np.random.randint(0,5,(2,2)) 谢谢 这里有一种方法: Import numpy as np A = np.random.randint(0,5,(8,3)) B = np.random.randint(0,5,(2,2)) C = (

我正在做一个项目,偶然发现了这个问题。 我有两个形状为(8,3)和(2,2)的数组A和B。我如何才能找到A中包含B中每行元素的所有行,而不考虑B中元素的顺序

A = np.random.randint(0,5,(8,3))
B = np.random.randint(0,5,(2,2))

谢谢

这里有一种方法:

Import numpy as np

A = np.random.randint(0,5,(8,3))
B = np.random.randint(0,5,(2,2))

C = (A[..., np.newaxis, np.newaxis] == B)
rows = np.where(C.any((3,1)).all(1))[0]
print(rows)
输出:

[0 2 3 4]

但这不会检查重复项,例如它接受[1,2,3]中的
[3,3]

每行->任何行或所有行?嗨,我对所有行都感兴趣!你是指A中包含B中所有元素的行集合?请你解释一下好吗?
import numpy as np

A = np.random.randint(0, 5, (8, 3))
B = np.random.randint(0, 5, (2, 2))

for BRow in B:
    for ARow in A:
        if all(item in ARow for item in BRow):
            print(f'{BRow} in {ARow}')