Цель состоит в том, чтобы итеративно сдвинуть один список относительно другого (фиксированный)
Пример:
a = [0,1,2,4,6,8,24,48,96]
b = [3,6,12]
np.corrcoef
вычислить коэффициент Pirson corr. Это ждет списки равного размера. Итак, на первом шаге:
a = [0] , b = [12]
a = [0,1], b = [6,12]
a = [0,1,2], b = [3,6,12]
a = [1,2,4], b = [3,6,12]
.....
a = [24,48,96], b = [3,6,12]
a = [48,96], b = [3,6]
a = [96], b = [3]
Мой ответ состоит в том, чтобы выполнить итерацию следующим образом (b.shape [0] должен быть for i in range(0, (a.shape[0]+b.shape[0]), 1):
if i < b.shape[0] :
temp_b = b[- i:]
temp_a = a[:i]
elif i >= b.shape[0] and i < a.shape[0]:
temp_b = b
temp_a = a[i-b.shape[0]:i]
else:
temp_b = b[:b.shape[0]-(i-a.shape[0])]
temp_a = a[i - b.shape[0]:]
Но я чувствую, что есть более элегантный и эффективный способ сделать это смещение списка над списком