Python Numpy, пересечение двумерных массивов
Имеется два массива np:
a = np.array([
[1, 2, 3, 5],
[5, 6, 3, 3],
[6, 8, 1, 7],
[9, 5, 1, 9],
[6, 4, 8, 12],
[5, 9, 2, 14],
])
b = np.array([
[1, 2, 3, 3],
[3, 3, 3, 6],
[6, 8, 1, 8],
[0, 0, 0, 1],
[5, 9, 2, 9],
])
Необходимо создать два массива a_ и b_. В эти массивы должны быть записаны строки, которые повторяются в обоих массивах по первым 3м элементам. То есть должны получиться такие массивы:
a_ = np.array([
[1, 2, 3, 5],
[6, 8, 1, 7],
[5, 9, 2, 14],
])
b_ = np.array([
[1, 2, 3, 3],
[6, 8, 1, 8],
[5, 9, 2, 9],
])
Ничего умнее цикла придумать не могу, может есть какая то функция о которой я не знаю и не могу нагуглить.
Можно в принципе поудалять неподходящие строки на месте прям в массивах a и b не создавая новых массивов a_ и b_ если есть возможность.