python的续航标志是_Python中的标志

我正在使用一个大矩阵(250x250x30 = 1,875,000个单元格),我想要一种方法为这个矩阵中的每个单元设置任意数量的标志,这种方式易于使用且空间效率合理.

我最初的计划是250x250x30列表数组,其中每个元素都是:[“FLAG1”,“FLAG8”,“FLAG12”].然后我将其改为仅存储整数:[1,8,12].这些整数由getter / setter函数在内部映射到原始标志字符串.这仅使用250mb,每点8个标志,这在内存方面很好.

我的问题是:我是否错过了构建此类数据的另一种明显方法?

谢谢大家的建议.我最后将一些建议合而为一,遗憾的是,我只能选择一个答案而不得不与其他人一起生活:

编辑:我在这里使用的初始代码(使用集合作为3d numpy数组的基本元素)使用了大量内存.当填充randint(0,2 ** 1000)时,这个新版本使用大约500mb.

import numpy

FLAG1=2**0

FLAG2=2**1

FLAG3=2**2

FLAG4=2**3

(x,y,z) = (250,250,30)

array = numpy.zeros((x,y,z), dtype=object)

def setFlag(location,flag):

array[location] |= flag

def unsetFlag(location,flag):

array[location] &= ~flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值