Не уверен на 100%, что это то, что вы ищете, так как вы не дали пример ввода и вывода, но вот что, я думаю, вы хотите. По сути, цикл по каждому элементу в первом массиве и поиск, существует ли этот элемент во втором массиве. Затем выровняйте выходной массив.
a = [[1,2],[3,4],[5,6],[7,8],[9,10],[11,12]]
b = [[5,7],[2,9],[13,12]]
np.shape(a) #(6,2)
np.shape(b) #(3,2)
# Find items common to both
c = [[[item for item in a[i] if item in b[j]] for i in range(len(a))] for j in range(len(b))]
# [[[], [], [5], [7], [], []],
# [[2], [], [], [], [9], []],
# [[], [], [], [], [], [12]]]
# Remove empties and flatten
c = [item for elements in c for items in elements for item in items if item != []]
# [5, 7, 2, 9, 12]
РЕДАКТИРОВАТЬ:
Возможно, более удобный для читателя метод - сначала сгладить a и b:
a_f = [item for items in a for item in items]
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
b_f = [item for items in b for item in items]
# [5, 7, 2, 9, 13, 12]
Затем выполните l oop через:
c = [item for item in a_f if item in b_f]
# [2, 5, 7, 9, 12]
EDIT2:
Возможно, я неправильно понял вопрос. Если элементы в массивах являются двумерными координатами / признаками, то вам просто нужно это:
a = [[1,2],[3,4],[5,6],[7,8],[9,10],[11,12]]
b = [[5,6],[1,14],[8,7],[3,4]]
c = [item for item in a if item in b]
# [[3, 4], [5, 6]]