Моя основная проблема c заключается в том, что мне нужно использовать 2 массива с целыми числами и получить комбинированный массив, представляющий собой комбинацию многих диапазонов, созданных с использованием попарных комбинаций из 2 исходных массивов.
Сказал немного по-другому, я хочу использовать 2 массива, объединить их для получения набора диапазонов, а затем объединить эти диапазоны вместе. Важно отметить, что мне нужно сделать это без использования циклов, так как я собираюсь сделать это почти 4 миллиона раз.
Мои 2 начальных массива:
import numpy as np
sd = np.array([3,3,4,2,5,1]) # StartDate
ed = np.array([4,5,5,5,8,2]) # EndDate
Попарно, они будет выглядеть следующим образом, комбинируя (sd [i] с ed [i]):
[(3, 4), (3, 5), (4, 5), (2, 5), (5, 8), (1, 2)] # Pairwise combinations of StartDate and EndDate
В качестве примера, я мог бы итерировать по этим парам, создавая диапазоны, примеры ниже :
[In]: range1 = np.arange(3,4)
[Out]: array([3])
[In]: range2 = np.arange(3,5)
[Out]: array([3,4])
... и так далее, чтобы получить окончательный результат, который будет:
array([3, 3, 4, 4, 2, 3, 4, 5, 6, 7, 1]) # End result where the arrays are tiled after one another
#(note first 3 digits are array 1 and array 2 from immediately above.
Моя проблема в том, что мне нужно go от ввода массивы и выходной массив без зацикливания, как я уже пробовал версию этого, и это слишком медленно. Любая помощь очень ценится.