在linux 64bit环境中,我有非常大的float64阵列(单个将500GB到1TB)。我想以统一的方式在numpy中访问这些数组:a [x:y]。所以我不想以分段文件的形式访问数组。有什么工具可以在许多不同的文件上创建memmap吗? hdf5或pytables可以将单个CArray存储到许多小文件中吗?也许类似于fileInput的东西?或者我可以使用文件系统来模拟单个文件吗?如何将超大型数组保存到许多小文件中?
在matlab中,我一直在使用H5P.set_external来做到这一点。然后我可以创建一个原始数据集并将其作为一个大的原始文件进行访问。但我不知道是否可以在Python中的这些数据集上创建numpy.ndarray。或者我可以将一个数据集传播到许多小型的hdf5文件中?
不幸的是,H5P.set_chunk不能用于H5P.set_external,因为set_external仅适用于连续数据类型不是分块数据类型。
一些相关的话题: Chain datasets from multiple HDF5 files/datasets
您可以使用'numpy.memmap'数组,它使用磁盘而不是内存。 [检查此示例](http://stackoverflow.com/a/16633274/832621) –
它可以将多个文件映射到单个数组吗? – Wang
我知道'memmap'可以将多个数组映射到一个文件中,但从来没有试图用多个文件来映射一个数组。也许这是不可能的使用默认的'memmap'类 –