2016-08-16 8 views
2

BitArrayの要素のインデックスのリストを取得しました。私は要素を抽出したい。私はこの単純な例で古典的な方法リスト内のインデックスを使用してビット配列から要素を抽出する

from bitstring import BitArray 
barray = BitArray('0b101111011110101') 
index = [1,2,3,4] 
barray[index] 

をしようとすると、私はエラー

IndexError: Slice index out of range. 

私はインデックスタプルまたはnumpyの配列として使用する場合それは同じだだ

。私はドキュメンテーションと主要な機能を見ていましたが、それは私のためには変ですが、不可能と思われています。理由はわかりません。

唯一の解決策はループを実行することであると思われ、私はスピードのためにそれを避けたいと思います。

誰かがアイデアを得ますか?

答えて

0

さて、あなたがnumpyのboolean型配列としてそれらを抽出するためにnp.takeを使用することができます - 原理に

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) 
+0

[OK]を、私は新しい問題を抱えて - サンプル実行

np.take(barray,index) 

:私のファイルには、あまりにもありますnumpy.take(2Gb)のための大きい、私はメモリエラーを得た –

関連する問題