Чтобы создать конкатенацию и обойти ошибку, я инициализировал массив значением None и проверил, находится ли он в цикле None.Таким образом, вам не нужно беспокоиться о несоответствии размеров.Тем не менее, я создал несколько массивов для тех, которые вы только что описали, и в итоге получил окончание (400, 30, 30, 3)
.Это вписывается сюда, так как 20*20 = 400
.Надеюсь, это поможет вам.
new_one_arr1_list = []
new_one_arr2_list = []
one_arr1 = np.ones((20,30,30,3))
one_arr2 = np.ones((20,30,30,3))
all_arr1 = None
count = 0
for item in one_arr1: # 100 iterations
item = np.reshape(item, (1, 30, 30, 3))
new_one_arr1 = np.repeat(item, 20, axis=0)
# print(all_arr1.shape, new_one_arr1.shape)
if all_arr1 is None:
all_arr1 = new_one_arr1
else:
all_arr1 = np.concatenate(([all_arr1 , new_one_arr1 ]), axis=0)
ind = np.random.randint(one_arr2.shape[0], size=(20,))
new_one_arr2= one_arr1[ind]
new_one_arr1_list.append(new_one_arr1)
new_one_arr2_list.append(new_one_arr2)
count += 1
print(count)
all_arr1.shape