Эффективно создавать Numpy массивов в Python - PullRequest
1 голос
/ 18 февраля 2020

У меня есть 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)

Приведенный выше код работает правильно, поэтому я могу объединить все элементы для каждого файла маринада для каждого соответствующего изображения вместе. Однако я уверен, что это не самый эффективный способ. Есть ли более компактный способ выполнить тот же подход без, возможно, двойного для.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...