Как найти соответствующие индексы массивов в двух массивах массивов разной формы одинакового размера?
Например, массив x
размера 36 разбит на 11 массивов.Другой массив y
размером 36 разбит на 4 массива.Затем происходят некоторые модификации на 4 массивах, составляющих y
.
N = 6 #some size param
x = np.zeros(N*N,dtype=np.int) #make empty array
s1 = np.array_split(x,11) #split array into arbitrary parts
y = np.random.randint(5, size=(N, N)) #make another same size array (and modify it)
s2 = np.array_split(y,4) #split array into different number of parts
Затем итерируя по 4 массивам y
, мне нужно найти начальный индекс в первом массиве (array_num
) s1
, до конечного индекса последнего массиваs1
что значения в s2
соответствуют.
for sub_s2 in s2:
array_num = ?
s_idx = ?
e_idx = ?
s2_idx = ?
e2_idx = ?
#put the array into the correct ordered indexes of the other array
s1[array_num][s_idx,e_idx] = sub_s2[s2_idx,e2_idx]
res = np.concatenate(s1)
Я сделал это изображение, чтобы попытаться проиллюстрировать проблему.В этом случае «данные» означают размер x и y для начала.Затем s1 и s2 разбиваются на разные фрагменты, и проблема заключается в поиске индекса в каждом фрагменте, которому соответствуют массивы в s2.