BitArray
class qiskit.primitives.BitArray(array, num_bits)
ベース: ShapedMixin
ビット値の配列を格納する。
このオブジェクトは、ビット列の配列を表す、1つの連続したデータ・ブロックを含む。 最後の軸はパックされたビットの上、2番目の軸はショットの上、前の軸はこれらのビットをサンプリングするために実行されたパブの形状に対応している。
通常、このオブジェクトは、単一の を通じてアクセスされる DataBin 構成 PubResult.data要素の一つとして返されます。 通常、ユーザーがこのクラスを自分で作成することはありませんが、ビット列のようなデータを別の形式で保持しており、 BitArrayそれをこのクラスに変換したい場合は、、 from_counts()from_bool_array() またはのいずれかを使用 from_samples()できます。
メソッド to_bool_array() を使用して bool 、ビット列を拡張された配列に「展開」できます。
このクラスは、 & ビット単位の AND、OR | 、XOR ^ 、 ~ および NOT 演算子をサポートします。ここで、二進演算子は 2 つの BitArray Instance インスタンスに対して作用します。
このクラスは「インデックス付け」構文もサポートしています bit_array[indices]。 これらは、対応するパブと同じ形状から、単一 indices のエントリまたは多次元スライスを選択します。 許可されるインデックスは次の通りです numpy.ndarray:各次元に対して単一の整数、スライス(a:b)、またはNumpy配列を使用でき、複数の次元を一度にスライスするには項目のタプルを使用できます。 インデックス構文は「ショット」軸や「ビット」軸に沿ったスライスには使用できません。これらにはそれぞれ と slice_bits() slice_shots() を使用してください。
パラメーター
- array (NDArray[np.uint8]) –
uint8データ配列。 - num_bits (int) – 各結果には何ビット含まれていますか。
レイズ
- TypeError - 入力が
numpy.uint8型の NumPy 配列でない場合。 - ValueError - 入力配列が2軸より少ない場合、または最後の軸のサイズが
num_bitsを含むことができる最小のバイト数でない場合。
属性
array
NumPy の生のデータ配列。
ndim
num_bits
この配列がデータを格納するレジスタのビット数。
例えば、 ClassicalRegister(5, "meas") は、 num_bits=5 となる。
num_shots
各コンフィギュレーションでレジスタからサンプリングされたショット数。
より正確には、2番目の最終軸の長さである。 array.
shape
size
方法
bitcount
concatenate
static concatenate(bit_arrays, axis=0)
既存の軸に沿って一連のビット配列を結合する。
パラメーター
- bit_arrays (Sequence[BitArray]) – ビット配列は、(1) ビット数が同じであること、(2) ショット数が同じであること、および (3) 形状が同じである必要があります。ただし、軸に対応する次元(デフォルトでは最初の次元)についてはこの限りではありません。
- axis (int) – 配列が結合される軸。 デフォルトは 0 です。
戻り値
連結されたビット配列。
レイズ
- ValueError - ビット配列のシーケンスが空の場合。
- ValueError - いずれかのビット配列のビット数が異なる場合。
- ValueError - いずれかのビットアレイのショット数が異なる場合。
- ValueError - ビット配列の次元数が異なる場合。
戻りの型
concatenate_bits
static concatenate_bits(bit_arrays)
ビット軸に沿って一連のビット配列を結合する。
この方法は、ショットごとのビットストリングの連結と同じである。
パラメーター
bit_arrays (Sequence[BitArray]) – (1) ショット数が同じで、かつ (2) 形状が同じビット配列。
戻り値
スタックされたビット配列。
レイズ
- ValueError - ビット配列のシーケンスが空の場合。
- ValueError - いずれかのビットアレイのショット数が異なる場合。
- ValueError - いずれかのビット配列の形状が異なる場合。
戻りの型
concatenate_shots
static concatenate_shots(bit_arrays)
ショット軸に沿って一連のビット配列を結合する。
パラメーター
bit_arrays (Sequence[BitArray]) – ビット配列は、(1) ビット数が同じであり、かつ (2) 形状が同じでなければなりません。
戻り値
スタックされたビット配列。
レイズ
- ValueError - ビット配列のシーケンスが空の場合。
- ValueError - いずれかのビット配列のビット数が異なる場合。
- ValueError - いずれかのビット配列の形状が異なる場合。
戻りの型
expectation_values
expectation_values(observables)
このビット配列に対してブロードキャストされた、提供された観測値の期待値を計算する。
このメソッドは、演算子が複素係数を持つ場合でも、期待値の実数部を返す。 sampled_expectation_value().
パラメーター
observables (str |Pauli |SparsePauliOp |SparseObservable |Mapping[str |Pauli, float] | ArrayLike) – 期待値を計算する被観測量。 このビット配列でブロードキャスト可能な形状であり、かつ、このビット配列のビット数と同じ数の量子ビットを持つものでなければならない。 観測可能量も対角行列(I、Z、0 または 1)でなければならない。
戻り値
observables 、このビット配列のブロードキャスト形状を持つ期待値の配列。
レイズ
- ValueError - 提供されたobservablesがこのビット配列でブロードキャスト可能な形状を持たない場合。
- ValueError - 提供されたobservablesがこのビット配列のビット数と同じ数のqubitsを持っていない場合。
- ValueError - 提供された観測値が対角でない場合。
戻りの型
from_bool_array
static from_bool_array(array, order='big')
boolsの配列から新しいビット配列を構築する。
パラメーター
- array (ndarray[tuple[Any, ...], dtype[bool]]) – 変換対象の配列。最後の軸には「ビット列」が含まれます。
- order (Literal['big', 'little']) –
"big"または のいずれか。 がそれぞれ、各ビット列の最上位ビットまたは最下位ビットのどちらに対応するかを示す。"little"array[..., 0]
戻り値
新しいビット配列。
戻りの型
from_counts
static from_counts(counts, num_bits=None)
1つ以上の Counts-likeオブジェクトから新しいビット配列を構築する。
counts 、(一様に)整数、16進数、ビット列のキーを持つことができる。 その値は、その値の出現回数を表す。
パラメーター
- counts (Mapping[str |int, int] | Iterable[Mapping[str |int, int]]) – ショット数が同じである1つ以上のカウントのようなマッピング。
- num_bits (int | None) – 1ショットに必要なビット数。 未設定の場合、見つかった最大の値が、最小1ビットでこの値を設定する。
戻り値
単一の入力カウントの場合は () の形状を持つ新しいビット配列、 カウントの反復可能な場合は (N,) の形状を持つ新しいビット配列。
レイズ
- ValueError - マッピングによってショット数が異なる場合。
- ValueError - カウント辞書が与えられていない場合。
戻りの型
from_samples
static from_samples(samples, num_bits=None)
ビット列、16進数、整数のイテレート可能な配列から新しいビット配列を構築する。
最初のサンプルが整数の場合、すべてのサンプルは整数であると仮定される。 文字列は、最初の文字列が "0x" で始まらないときは、すべてビット列とみなされる。
このメソッドと reshape() と組み合わせることを検討する。
パラメーター
- samples (Iterable[str] | Iterable[int]) – ビット列のリスト、整数のリスト、または16進数のリスト。
- num_bits (int | None) – サンプルあたりの希望ビット数。 未設定の場合、提供された最大のサンプルが、最小1ビットでこの値を決定するために使用される。
戻り値
新しいビット配列。
レイズ
ValueError - 文字列が与えられていない場合。
戻りの型
get_bitstrings
get_bitstrings(loc=None)
ビット列のリストを返す。
パラメーター
loc (int |tuple[int, ...] | None) – この配列のどのエントリの辞書を返すか。 None の場合、この配列のすべての位置からのカウントがひとつにまとめられる。
戻り値
ビット列のリスト。
戻りの型
get_counts
get_counts(loc=None)
ビット列をキーとするカウント辞書を返す。
パラメーター
loc (int |tuple[int, ...] | None) – この配列のどのエントリの辞書を返すか。 None の場合、この配列のすべての位置からのカウントがひとつにまとめられる。
戻り値
ビット列とそのビット列の出現回数を対応付けた辞書。
戻りの型
get_int_counts
get_int_counts(loc=None)
ビット列が ints として格納されているカウント辞書を返す。
パラメーター
loc (int |tuple[int, ...] | None) – この配列のどのエントリの辞書を返すか。 None の場合、この配列のすべての位置からのカウントがひとつにまとめられる。
戻り値
ints をその int の出現回数に対応付ける辞書。
戻りの型
postselect
postselect(indices, selection)
このビット配列を、与えられたビット列とのスライスされた等質性に基づいて後選択する。
このビット配列に形状軸が含まれている場合、ポストセレクションを適用する前に、まず長いショットリストに平坦化される。 これは BitArray は、軸をまたぐショットの乱数を扱うことができないからである。
パラメーター
- indices (Sequence[int] | int) – ポストセレクトを行うcbitsのインデックス一覧。 このビット配列がサンプラーによって生成されたものである場合、インデックスは(前述のように
slice_bits()i``creg[i])位置ClassicalRegisterに対応します。 負のインデックスも使用可能です。 - selection (Sequence[bool |int] | bool |int) – 長さが に一致するバイナリ値のリスト( に
bool``indicesキャストされる)。ここで、indices[i]``selection[i]は に相当する。 で指定されたすべてのcbitsindicesが、で与えられた値selectionをとらない限り、ショットは破棄されます。
戻り値
shape=(), num_bits=data.num_bits, num_shots<=data.num_shots を持つ新しいビット配列。
レイズ
- IndexError -
max(indices)が以下の場合num_bits. - IndexError -
min(indices)がマイナスより小さい場合num_bits. - ValueError -
selectionとindicesの長さが一致しない場合。
戻りの型
reshape
reshape(*shape)
新しいビット配列を返す。
軸は num_shots 軸は、新しい形状がどの画像に適合するかによって、リシェーピング手順から含まれるか除外される。 例えば、形状が (20, 5) 、ショット数が 64 のビット配列の場合、 (100,) にリシェイプするとショット数はそのままで、 (200, 32) にリシェイプするとショット数は 32 に変更される。
パラメーター
*shape ( int | Iterable* [ *int | [I] terableShapeInput] ) – 希望する新しい形状。
戻り値
新しいビット配列。
レイズ
ValueError - 新しいシェイプに対応するサイズが sizeと size と num_shots.
戻りの型
slice_bits
slice_bits(indices)
注目するインデックスをビット軸に沿ってスライスしたビット配列を返す。
このメソッドで使われる慣例は、 0 の最下位ビットに対応するというものである。 arrayの最下位ビットに対応する。 get_counts() または get_bitstrings()などで返されるビット列エントリーの最下位ビットに対応する。
このビット配列がサンプラーによって生成されたものであれば、インデックス i は次の場所に対応する。 ClassicalRegistercreg[i] に対応する。
パラメーター
indices (int |Sequence[int]) – スライスする際に注目すべきビットの位置。
戻り値
ビット軸に沿ってスライスされたビット配列。
レイズ
IndexError - ビット軸に無効なインデックスがある場合。
戻りの型
slice_shots
slice_shots(indices)
注目するインデックスをショット軸に沿ってスライスしたビット配列を返す。
パラメーター
indices (int |Sequence[int]) – スライスさせる際に注目すべきショットの位置。
戻り値
ショットの軸に沿って少し配列がスライスされている。
レイズ
IndexError - ショット軸に無効なインデックスがある場合。
戻りの型
to_bool_array
to_bool_array(order='big')
これを BitArray を真偽値配列に変換する。
パラメーター
order (Literal['big', 'little']) – "big" または のいずれか。それぞれ、各ビット列の最上位ビットと最下位ビットのどちらを に置くべきかを示す。 "little" [..., 0]
戻り値
NumPy、ブールの配列。
レイズ
ValueError - オーダーが "big" または "little" のいずれかでない場合。
戻りの型
transpose
transpose(*axes)
軸を転置したビット配列を返す。
パラメーター
axes - なし,int型のタプル,またはn個のint型. 詳細は ndarray.transpose を参照のこと。
戻り値
軸が並べ替えられたビット配列。
戻りの型
レイズ
- ValueError -
axesがこのビット配列と一致しない場合。 - ValueError -
axesに範囲外のインデックスが含まれている場合。