У меня есть два массива с цифрами: arr1 = (~ 140000, 3) и arr2 = (~ 450000, 10). Первые 3 элемента каждой строки для обоих массивов являются координатами (z, y, x). Я хочу найти строки arr2, которые имеют одинаковые координаты arr1 (который можно считать подгруппой arr2).
например:
arr1 = [[1,2,3],[1,2,5],[1,7,8],[5,6,7]]
arr2 = [[1,2,3,7,66,4,3,44,8,9],[1,3,9,6,7,8,3,4,5,2],[1,5,8,68,7,8,13,4,53,2],[5,6,7,6,67,8,63,4,5,20], ...]
Я хочу найти общие координаты (те же первые 3 элемента):
list_arr = [[1,2,3,7,66,4,3,44,8,9], [5,6,7,6,67,8,63,4,5,20], ...]
В данный момент я делаю этот двойной цикл, который очень медленный:
list_arr=[]
for i in arr1:
for j in arr2:
if i[0]==j[0] and i[1]==j[1] and i[2]==j[2]:
list_arr.append (j)
Я также пытался создать (после 1-го цикла) подмассив arr2, отфильтровав его по значению i [0] (arr2_filt = [el для el в arr2, если el [0] == i [0]) , Эта скорость немного работает, но она все еще остается очень медленной.
Можете ли вы помочь мне с этим?