我正在尝试连接几百个大小总计约25GB的数组。我在56GB的机器上进行测试,但是收到了内存错误。我认为我的处理方式效率低下且占用大量内存。这是我的代码:
for dirname, dirnames, filenames in os.walk('/home/extra/AllData'):
filenames.sort()
BigArray=numpy.zeros((1,200))
for file in filenames:
newArray[load(filenames[filea])
BigArray=numpy.concatenate((BigArrat,newArray))
有什么想法、思路或解决方案吗?
谢谢
a = np.concatenate((a, b))
时,numpy会创建一个中间数组,其中包含a
和b
的连接,然后将变量a
指向它,如果旧的a
没有其他引用,则会被垃圾回收。但是,它需要即使只是短暂的一瞬间,您也需要比最终数组多两倍的内存。 - Jaime