我在同一个函数中创建了4个大小为:(115005L, 6005L) (9738L, 6005L) (115005L, 9738L) and (115005L, 6005L)的矩阵,从而获得了MemoryError。现在我在Windows的Python 2.7.13 (Anaconda 64-bit)上。将python升级到3.x是解决这个问题的最好方法吗?或者如何在不修改硬件的情况下解决MemoryError?我必须使用这台电脑,但我没有购买或添加任何东西的权力。
发布于 2017-11-28 21:32:59
您可以使用.astype(t)方法向下转换数据中的数值类型,以在一定程度上节省内存。例如:
rr.shape
Out[69]: (15000, 35)
rr.nbytes
Out[70]: 4200000
zz = rr.astype('float16')
zz.nbytes
Out[72]: 1050000发布于 2017-11-28 21:43:35
众所周知,在许多域中,Python 3比Python 2.7需要更多的内存:
在其他领域可能出现了一些改进,但我不希望从Python2传递到Python3可以解决任何内存不足的问题。
增加物理内存应该是一种更可靠的方法。
https://stackoverflow.com/questions/47532330
复制相似问题