这段代码产生一个MemoryError
:
from pylab import complex128
import numpy
x = numpy.empty(100000000, dtype=complex128) # 100 millions complex128
我有 Win7 64 和 8 GB RAM(运行此代码时至少有 5.3 GB 可用空间)。我正在使用 Python 2.7 (Anaconda),我认为它是 32 位版本。即使使用 32 位,我们也应该能够处理 1.6 GB!
你知道如何解决这个问题吗?
PS:我期望有一个包含 1 亿个项目的数组,每个项目使用 16 字节(128 位)来使用 16 * 1 亿 = 1.6 GB。这得到了证实:
x = numpy.empty(1000000, dtype=complex128) # 1 million here
print x.nbytes
>>> 16000000 # 16 MB
使用Python 64位解决了这个问题。
甚至可以创建超过 5 GB 的单个阵列。
注意:当我创建一个应该使用 1 600 000 000 字节的数组时(其中包含 1 亿个项目)complex128
数组),实际内存使用量并不“多”:1 607 068 KB...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)