Python 将传入的numpy数组流式传输到S3上的单个numpy数组中

Python 将传入的numpy数组流式传输到S3上的单个numpy数组中,python,numpy,amazon-s3,Python,Numpy,Amazon S3,我正在寻找一个高效的解决方案,它允许我生成Numpy数组的批,并将这些批写入S3中的单个Numpy数组 我目前有一个可行的方法,包括创建一个多部分上传,比如 multi_part_upload = s3_client.create_multipart_upload(Bucket=bucket, Key=key) 然后在生成数组批处理时,每个批处理都会获得一个“PartNumber”,以确保它们以正确的顺序写入(我通常会对该部分执行线程) 最后,上传需要用 result = self.s3_cl

我正在寻找一个高效的解决方案,它允许我生成Numpy数组的批,并将这些批写入S3中的单个Numpy数组

我目前有一个可行的方法,包括创建一个多部分上传,比如

multi_part_upload = s3_client.create_multipart_upload(Bucket=bucket, Key=key)
然后在生成数组批处理时,每个批处理都会获得一个“PartNumber”,以确保它们以正确的顺序写入(我通常会对该部分执行线程)

最后,上传需要用

result = self.s3_client.complete_multipart_upload(
            Bucket=bucket,
            Key=key,
            UploadId=self.multi_part_upload["UploadId"],
            MultipartUpload={"Parts": parts}, #list of all uploaded part numbers
        )
除了一个缺点之外,这就足够了,那就是Numpy数组现在实际上只是一堆字节,不包含任何关于如何重构数组的头信息。通常,如果要使用np.save和np.load,Numpy知道如何自动进行重建。现在,我们被迫保存一个额外的头文件,因此需要读取两个文件以重建Numpy数组

所以我的具体问题是,有没有人知道一种方法,可以让我将成批的NumPy数组流到s3上的单个NumPy数组中,这种方式可以让我在之后用np.load读取它

result = self.s3_client.complete_multipart_upload(
            Bucket=bucket,
            Key=key,
            UploadId=self.multi_part_upload["UploadId"],
            MultipartUpload={"Parts": parts}, #list of all uploaded part numbers
        )