Python 批处理:读取图像文件,然后将多维numpy数组写入HDFS

Python 批处理:读取图像文件,然后将多维numpy数组写入HDFS,python,pandas,numpy,hdfs,batch-processing,Python,Pandas,Numpy,Hdfs,Batch Processing,我尝试从文件夹中迭代加载一批图像,然后处理,然后将批处理结果存储到hdf文件中。批量读取图像/文件并批量存储生成的多维数组的最佳做法是什么 第一部分 我从csv文件名列表开始: file_list = [''.join(x) + '.png' for x in permutations('abcde')][:100] 例如,我想一次处理5张图像 我目前从列表中获取5个文件名,创建一个空数组来保存5个图像,然后一次读取一个图像以生成一个批 def load_images(file_list):

我尝试从文件夹中迭代加载一批图像,然后处理,然后将批处理结果存储到hdf文件中。批量读取图像/文件并批量存储生成的多维数组的最佳做法是什么

第一部分 我从csv文件名列表开始:

file_list = [''.join(x) + '.png' for x in permutations('abcde')][:100]
例如,我想一次处理5张图像

我目前从列表中获取5个文件名,创建一个空数组来保存5个图像,然后一次读取一个图像以生成一个批

 def load_images(file_list):
     for i in range(0, 100, 5):
          files_list = file_list[i, i + 5]
          image_list = np.zeros(shape=(5, 50, 50, 3))

          for idx, file in enumerate(files_list):
              loaded_img = np.random.random((50, 50, 3))  # misc.imread(file) 
              image_list[idx] = loaded_img
          yield image_list, files_list
问题1:有没有办法消除第二个for循环?我是否可以批量读取图像,或者上述方法(一次一个)是最佳实践

第二部分: 加载图像后,我对它们进行了一些处理。这将导致不同大小的数组

def process_images(image_batch):
    result = image_batch[:, 5, 4, 3]  # a novel down-sampling algorithm
    return result
现在,我想用原始文件名存储这批图像

def store_images(data, file_names):
    with pd.HDFstore('output.h5') as hdf:
        pass 
问题2:存储一批多维numpy数组的最佳方式是什么,同时仍使用键(如原始文件名)引用它们

我想探索如何使用.h5文件,因此如果有人知道如何将数据批处理到.h5文件,并对此提出建议,我将不胜感激。或者,我认为有一种方法可以将numpy数组作为.npy文件保存到一个文件夹中,但我在这方面遇到了问题,除了一次一个样本(相对于一次一批样本)之外,我仍然不知道如何执行此操作