У меня есть 1000 файлов pickle, каждый из которых содержит словарь с массивами 3 NumPy. Для каждого файла массивы NumPy имеют размеры Nx100x100x3, Mx50x50x3 и Kx28x28x3 (три массива изображений RGB с N, M и K соответствуют количеству кадров). Для каждого видео размеры N, K и M различны. Я хочу объединить все соответствующие массивы NumPy (массивы, содержащие изображения одинакового размера). Чтобы сделать это, я делаю следующий процесс:
arr1 = []
arr2 = []
arr3 = []
dirs = locate_all_pickle_files(my_path)
for dir in dirs:
dct = load(my_path + dir)
img1 = dct["img1"]
img2 = dct["img2"]
img3 = dct["img3"]
for item in img1:
arr1.append(item)
for item in img2:
arr2.append(item)
for item in img3:
arr3.append(item)
arr1 = np.asarray(arr1)
arr2 = np.asarray(arr2)
arr3 = np.asarray(arr3)
Приведенный выше код работает правильно, поэтому я могу объединить все элементы для каждого файла маринада для каждого соответствующего изображения вместе. Однако я уверен, что это не самый эффективный способ. Есть ли более компактный способ выполнить тот же подход без, возможно, двойного для.