Вопрос состоит в том, как в этом случае более эффективно объединить два массива. Существует массив numpy, один из которых имеет форму (N, M, 1), и массив два из формы (M, F). Требуется объединить второй массив с первым, чтобы создать массив формы (N, M, F + 1). Элементы второго массива будут транслироваться по N.
. Одним из решений является копирование массива 2 для получения размера первого (по всем dim, кроме одного), а затем конкатенации. Но это, если копирование может быть выполнено как широковещательная рассылка во время соединения / конкатата, это использовало бы намного меньше памяти.
Любые предложения о том, как сделать это более эффективным?
Настройка:
import numpy as np
arr1 = np.random.randint(0,10,(5,10))
arr1 = np.expand_dims(arr1, axis=-1) #(5,10, 1)
arr2 = np.random.randint(0,4,(10,15))
arr2 = np.expand_dims(arr2, axis=0) #(1, 10, 15)
arr2_2 = arr2
for i in range(len(arr1)-1):
arr2_2 = np.concatenate([arr2_2, arr2],axis=0)
arr2_2.shape #(5, 10, 15)
np.concatenate([arr1, arr2_2],axis=-1) # (5, 10, 16) -> correct end result
Соединение arr1 и arr2 для получения