python多维布尔数组?

thk*_*ang 2 python arrays boolean

它最多包含1000 x 1000 x 1000个元素,这对于python字典来说太大了.

使用dict,大约30 x 1000 x 1000个元素,在我的机器上它已经消耗了2GB的内存并且一切都被扔石头了.

任何可以处理三维数组的模块,其值只有True/False?我检查了bitarray http://pypi.python.org/pypi/bitarray,它似乎合理并用C编码,但它似乎更像是一个比特流而不是一个数组,因为它只支持一维.

Enr*_*eri 6

numpy是你的朋友:

import numpy as np
a = np.zeros((1000,1000,1000), dtype=bool)
a[1,10,100] = True
Run Code Online (Sandbox Code Playgroud)

内存占用尽可能少.

编辑:

如果确实需要,还可以查看collections模块中的defaultdict类容器,该容器不存储默认值的值.但如果它不是必须的话,请使用numpy.