У меня есть два списка или массива неравной длины (скажем, arr_a
, arr_b
). Я хочу сформировать третий массив / список кортежей, где первый элемент кортежа принимает значение arr_a[1st element] - arr_b[1st element]
, а второй элемент кортежа принимает arr_a[1st element] - arr_b[2nd element]
, а затем следующий кортеж принимает (arr_a[2nd_element]-arr_b[2nd_element], arr_a[2nd_element] - arr_b[3rd_element])
и так далее. Приведенный ниже код достигает этого, используя для l oop. Но я хочу выяснить, можно ли этого достичь с помощью какого-то NumPy векторизационного, вещательного подхода. обратите внимание, arr_a
и arr_b
имеют разную длину (len(arr_b) = len(arr_a)+1
)
arr_a = np.random.randint(low = 0,high = 10,size = 10)
arr_b = np.random.randint(low = 0,high = 10,size = 11)
out:
arr_a : [4 8 6 3 3 7 8 6 0 2]
arr_b : [8 8 9 6 1 6 1 5 8 3 1]
list_c = []
for i,j in zip(range(len(arr_a)),range(len(arr_b))):
list_c.append((arr_a[i]-arr_b[i],arr_a[i]-arr_b[i+1]))
out:
list_c : [(-4, -4), (0, -1), (-3, 0), (-3, 2), (2, -3), (1, 6), (7, 3), (1, -2), (-8, -3), (-1, 1)]