gpt4 book ai didi

Python空间+时间高效的数据结构来存储二维位数组

转载 作者:太空狗 更新时间:2023-10-29 22:16:38 26 4
gpt4 key购买 nike

我想在 Python 中以节省空间和时间的方式创建一个二维二进制(位)数组,因为我的二维位数组大约有 100 万(行)* 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 中使用等效的字典吗?

即使您建议我使用位数组来完成此任务,如果我能知道我是否可以让多个线程对位数组的拼接进行操作,以便我可以使其成为多线程,那将是很棒的。感谢您的帮助!!

编辑:

如果需要的话,我什至可以继续为此创建自己的数据结构。然而,只是想在重新发明轮子之前进行检查。

最佳答案

根据我的评论,您可以使用集合

0 1 0 1
1 1 1 0
1 0 0 0

可以表示为

set([(1,0), (3,0), (0,1), (1,1), (2, 1), (0,2)])

{(1,0), (3,0), (0,1), (1,1), (2, 1), (0,2)}

AND 相当于 2 个集合的交集
OR 是两个集合的并集

关于Python空间+时间高效的数据结构来存储二维位数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10396404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com