Я ищу способ сложить numpy массивы из источника, который может иметь динамические c измерения на нулевых осях.
stack_arrays = np.array([], dtype=np.float32)
sources = ["source_1", "source_2"]
for source in sources:
//return 3D array in the form of (N,W,H) where W and H are fixed but you dont know the size of W and H
new_arrays = get_arrays(source)
stack_arrays = np.append(stack_arrays , new_arrays , axis=0)
Когда я пытаюсь запустить этот код, я получаю ошибку :
ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 1 dimension(s) and the array at index 1 has 3 dimension(s)
Как я могу сделать массив np таким, чтобы он мог принимать любые виды 2D-фигур и складывать их.
РЕДАКТИРОВАТЬ:
Мне удалось решить это с помощью Reshape в конце.
stack_arrays = np.array([], dtype=np.float32)
dim_w, dim_h, rows = 0, 0, 0
sources = ["source_1", "source_2"]
for source in sources:
//return 3D array in the form of (N,W,H) where W and H are fixed but you dont know the size of W and H
new_arrays = get_arrays(source)
dim_w, dim_h = new_arrays.shape[1], new_arrays.shape[2]
rows = rows + new_arrays.shape[0]
stack_arrays = np.append(stack_arrays , new_arrays , axis=0)
new_arrays = new_arrays.reshape(rows, dim_w, dim_h)