我想以空间和时间有效的方式在 Python 中创建一个 2D 二进制(位)数组,因为我的 2D 位数组大约为 1 百万(行)* 50000(0 或 1 的列),而且我将执行按位运算这些巨大的元素。我的数组看起来像:
0 1 0 1
1 1 1 0
1 0 0 0
...
在 C++ 中,对我来说最有效的方法(空间)是创建一种整数数组,其中每个元素代表 32 位,然后我可以使用移位运算符和按位运算符进行运算。
现在我知道python中有一个bitarray模块。但我无法使用位数组列表创建二维结构。我怎样才能做到这一点?
我在 C++ 中知道的另一种方法是创建一个地图,就像map<id, vector<int> >
我可以在上面提到的那样操作向量的地方。我应该在python中使用等效的字典吗?
即使您建议我使用位数组来完成这项任务,如果我能知道是否可以让多个线程在位数组的拼接上操作以便我可以使其成为多线程,那将是很棒的。谢谢您的帮助!!
编辑:
如果需要,我什至可以继续为此创建自己的数据结构。然而,只是想在重新发明轮子之前检查一下。