如何在没有内存错误的情况下将许多numpy文件放在一个大的numpy文件中?

时间:2017-02-22 07:36:17

标签: python arrays numpy

我按照这个问题Append multiple numpy files to one big numpy file in python将许多numpy文件放在一个大文件中,结果是:

import matplotlib.pyplot as plt 
import numpy as np
import glob
import os, sys
fpath ="path_Of_my_final_Big_File"
npyfilespath ="path_of_my_numpy_files"   
os.chdir(npyfilespath)
npfiles= glob.glob("*.npy")
npfiles.sort()
all_arrays = np.zeros((166601,8000))
for i,npfile in enumerate(npfiles):
    all_arrays[i]=np.load(os.path.join(npyfilespath, npfile))
np.save(fpath, all_arrays)
data = np.load(fpath)
print data
print data.shape

我有数千个文件,通过使用此代码,我总是出现内存错误,因此我无法获得结果文件。 如何解决此错误? 如何按文件读取,写入和追加最终的numpy文件,?

1 个答案:

答案 0 :(得分:1)

尝试查看np.memmap。您可以实例化mainConstraintSet.connect(bottomLineView.getId(), ConstraintSet.TOP, bottomViewId, ConstraintSet.BOTTOM, (int) getResources().getDimension(R.dimen.margin_huge));

all_arrays

来自文档:

  

内存映射文件用于访问磁盘上的大段文件,而无需将整个文件读入内存。

您将能够访问所有阵列,但操作系统将负责加载您实际需要的部分。仔细阅读文档页面并注意,从性能的角度来看,您可以决定文件是按列还是按行存储。