我得到了BitArray元素索引的列表。我想提取元素。
如果我尝试这个简单的例子经典方法
from bitstring import BitArray
barray = BitArray('0b101111011110101')
index = [1,2,3,4]
barray[index]
我收到了错误
IndexError: Slice index out of range.
如果我使用元组或numpy数组作为索引,它是一样的。我看了文档和主要功能,这对我来说很奇怪,但似乎不可能,我不知道为什么。
似乎唯一的解决方案是做一个循环,我想避免速度。
有人有个主意吗?
答案 0 :(得分:0)
那么你可以使用np.take
将它们作为NumPy布尔数组提取 -
np.take(barray,index)
示例运行 -
In [156]: barray
Out[156]: BitArray('0b101111011110101')
In [157]: index
Out[157]: [1, 2, 3, 4]
In [158]: np.take(barray,index)
Out[158]: array([False, True, True, True], dtype=bool)