Python 使用numpy查找两个列表列表之间的交点

Python 使用numpy查找两个列表列表之间的交点,python,arrays,numpy,Python,Arrays,Numpy,我有两张名单 案例1 x = [[1,2],[3,4],[5,6]] y = [[1,2],[3,4]] 我试过numpy import numpy as np np.intersect1d(x,y, return_indices=True) >>> (array([1, 2, 3, 4]), array([0, 1, 2, 3]), array([0, 1, 2, 3])) 期望结果 >>> (array([1, 2, 3, 4]), array([0

我有两张名单

案例1

x = [[1,2],[3,4],[5,6]]
y = [[1,2],[3,4]]
我试过numpy

import numpy as np
np.intersect1d(x,y, return_indices=True)
>>> (array([1, 2, 3, 4]), array([0, 1, 2, 3]), array([0, 1, 2, 3]))

期望结果

>>> (array([1, 2, 3, 4]), array([0, 1]), array([0, 1]))
>>> (array([1, 2, 3]), array([0, 1]), array([0, 1]))
案例2

x = [[1,2],[3,10],[5,6]]
y = [[1,2],[3,4]]
期望结果

>>> (array([1, 2, 3, 4]), array([0, 1]), array([0, 1]))
>>> (array([1, 2, 3]), array([0, 1]), array([0, 1]))
对我来说,最重要的部分是知道列表x中的哪些索引在列表y中有部分匹配。类似于:

[[0,1], # indices of x
[0,1]] # indices of y
更新1:没有必要使用numpy,但我需要一个快速的解决方案。
更新2:修复了numpy输出版本中的打字错误。首先,我将数组转换为numpy:

import numpy as np
x = np.array([[1,2],[3,4],[5,6]])
y = np.array([[1,2],[3,4]])
之后,我找到了他们的交叉点:

intersection=np.intersect1d(x,y, return_indices=True)[0]
定义了一个与列表进行比较的简单函数(我知道这里有改进的余地):

终于找到了你想要的(y也是一样):


首先,我将数组转换为numpy:

import numpy as np
x = np.array([[1,2],[3,4],[5,6]])
y = np.array([[1,2],[3,4]])
之后,我找到了他们的交叉点:

intersection=np.intersect1d(x,y, return_indices=True)[0]
定义了一个与列表进行比较的简单函数(我知道这里有改进的余地):

终于找到了你想要的(y也是一样):