我正在使用 Numpy 版本 1.11.1 并且必须处理一个二维数组
my_arr.shape = (25000, 25000)
所有值都是整数,我需要一个唯一的数组值列表。使用时lst = np.unique(my_arr)
我正进入(状态:
Traceback (most recent call last):
File "<pyshell#38>", line 1, in <module>
palette = np.unique(arr)
File "c:\Python27\lib\site-packages\numpy\lib\arraysetops.py", line 176, in unique
ar = np.asanyarray(ar).flatten()
MemoryError
我的机器只有8GB RAM,但我用另一台16GB RAM的机器尝试过,结果是一样的。监视内存和 CPU 使用情况并不能表明问题与 RAM 或 CPU 有关。
原则上,我知道数组包含的值,但是如果输入发生变化怎么办...另外,如果我想用另一个数组替换数组的值(假设全部 2 为 0),是否需要大量 RAM还有?
Python 32 位无法访问超过 4 GiB RAM(通常约为 2.5 GiB)。显而易见的答案是使用 64 位版本。如果这不起作用,另一种解决方案是使用numpy.memmap
并将数组内存映射到存储在磁盘上的文件中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)