Skip to main content
IBM Quantum Platform

BitArray

class qiskit.primitives.BitArray(array, num_bits)

GitHub

ベース: 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

bitcount()

GitHub

各ショットの2進表現に現れる1の数を計算する。

戻り値

形状が (*shape, num_shots)numpy.uint64-配列。

戻りの型

ndarray [ tuple [ Any, …], d[* type*] uint64]

concatenate

static concatenate(bit_arrays, axis=0)

GitHub

既存の軸に沿って一連のビット配列を結合する。

パラメーター

  • bit_arrays (Sequence[BitArray]) – ビット配列は、(1) ビット数が同じであること、(2) ショット数が同じであること、および (3) 形状が同じである必要があります。ただし、軸に対応する次元(デフォルトでは最初の次元)についてはこの限りではありません。
  • axis (int) – 配列が結合される軸。 デフォルトは 0 です。

戻り値

連結されたビット配列。

レイズ

  • ValueError - ビット配列のシーケンスが空の場合。
  • ValueError - いずれかのビット配列のビット数が異なる場合。
  • ValueError - いずれかのビットアレイのショット数が異なる場合。
  • ValueError - ビット配列の次元数が異なる場合。

戻りの型

BitArray

concatenate_bits

static concatenate_bits(bit_arrays)

GitHub

ビット軸に沿って一連のビット配列を結合する。

この方法は、ショットごとのビットストリングの連結と同じである。

パラメーター

bit_arrays (Sequence[BitArray]) – (1) ショット数が同じで、かつ (2) 形状が同じビット配列。

戻り値

スタックされたビット配列。

レイズ

  • ValueError - ビット配列のシーケンスが空の場合。
  • ValueError - いずれかのビットアレイのショット数が異なる場合。
  • ValueError - いずれかのビット配列の形状が異なる場合。

戻りの型

BitArray

concatenate_shots

static concatenate_shots(bit_arrays)

GitHub

ショット軸に沿って一連のビット配列を結合する。

パラメーター

bit_arrays (Sequence[BitArray]) – ビット配列は、(1) ビット数が同じであり、かつ (2) 形状が同じでなければなりません。

戻り値

スタックされたビット配列。

レイズ

  • ValueError - ビット配列のシーケンスが空の場合。
  • ValueError - いずれかのビット配列のビット数が異なる場合。
  • ValueError - いずれかのビット配列の形状が異なる場合。

戻りの型

BitArray

expectation_values

expectation_values(observables)

GitHub

このビット配列に対してブロードキャストされた、提供された観測値の期待値を計算する。

このメソッドは、演算子が複素係数を持つ場合でも、期待値の実数部を返す。 sampled_expectation_value().

パラメーター

observables (str |Pauli |SparsePauliOp |SparseObservable |Mapping[str |Pauli, float] | ArrayLike) – 期待値を計算する被観測量。 このビット配列でブロードキャスト可能な形状であり、かつ、このビット配列のビット数と同じ数の量子ビットを持つものでなければならない。 観測可能量も対角行列(I、Z、0 または 1)でなければならない。

戻り値

observables 、このビット配列のブロードキャスト形状を持つ期待値の配列。

レイズ

  • ValueError - 提供されたobservablesがこのビット配列でブロードキャスト可能な形状を持たない場合。
  • ValueError - 提供されたobservablesがこのビット配列のビット数と同じ数のqubitsを持っていない場合。
  • ValueError - 提供された観測値が対角でない場合。

戻りの型

ndarray [ tuple [ Any, …], d[* typefloat64*] ]

from_bool_array

static from_bool_array(array, order='big')

GitHub

boolsの配列から新しいビット配列を構築する。

パラメーター

  • array (ndarray[tuple[Any, ...], dtype[bool]]) – 変換対象の配列。最後の軸には「ビット列」が含まれます。
  • order (Literal['big', 'little']) – "big" または のいずれか。 がそれぞれ、各ビット列の最上位ビットまたは最下位ビットのどちらに対応するかを示す。 "little" array[..., 0]

戻り値

新しいビット配列。

戻りの型

BitArray

from_counts

static from_counts(counts, num_bits=None)

GitHub

1つ以上の Counts-likeオブジェクトから新しいビット配列を構築する。

counts 、(一様に)整数、16進数、ビット列のキーを持つことができる。 その値は、その値の出現回数を表す。

パラメーター

  • counts (Mapping[str |int, int] | Iterable[Mapping[str |int, int]]) – ショット数が同じである1つ以上のカウントのようなマッピング。
  • num_bits (int | None) – 1ショットに必要なビット数。 未設定の場合、見つかった最大の値が、最小1ビットでこの値を設定する。

戻り値

単一の入力カウントの場合は () の形状を持つ新しいビット配列、 NN カウントの反復可能な場合は (N,) の形状を持つ新しいビット配列。

レイズ

  • ValueError - マッピングによってショット数が異なる場合。
  • ValueError - カウント辞書が与えられていない場合。

戻りの型

BitArray

from_samples

static from_samples(samples, num_bits=None)

GitHub

ビット列、16進数、整数のイテレート可能な配列から新しいビット配列を構築する。

最初のサンプルが整数の場合、すべてのサンプルは整数であると仮定される。 文字列は、最初の文字列が "0x" で始まらないときは、すべてビット列とみなされる。

このメソッドと reshape() と組み合わせることを検討する。

パラメーター

  • samples (Iterable[str] | Iterable[int]) – ビット列のリスト、整数のリスト、または16進数のリスト。
  • num_bits (int | None) – サンプルあたりの希望ビット数。 未設定の場合、提供された最大のサンプルが、最小1ビットでこの値を決定するために使用される。

戻り値

新しいビット配列。

レイズ

ValueError - 文字列が与えられていない場合。

戻りの型

BitArray

get_bitstrings

get_bitstrings(loc=None)

GitHub

ビット列のリストを返す。

パラメーター

loc (int |tuple[int, ...] | None) – この配列のどのエントリの辞書を返すか。 None の場合、この配列のすべての位置からのカウントがひとつにまとめられる。

戻り値

ビット列のリスト。

戻りの型

リスト[ str]

get_counts

get_counts(loc=None)

GitHub

ビット列をキーとするカウント辞書を返す。

パラメーター

loc (int |tuple[int, ...] | None) – この配列のどのエントリの辞書を返すか。 None の場合、この配列のすべての位置からのカウントがひとつにまとめられる。

戻り値

ビット列とそのビット列の出現回数を対応付けた辞書。

戻りの型

ディクティッド[ str, int]

get_int_counts

get_int_counts(loc=None)

GitHub

ビット列が ints として格納されているカウント辞書を返す。

パラメーター

loc (int |tuple[int, ...] | None) – この配列のどのエントリの辞書を返すか。 None の場合、この配列のすべての位置からのカウントがひとつにまとめられる。

戻り値

ints をその int の出現回数に対応付ける辞書。

戻りの型

ディクティッド[ int, int]

postselect

postselect(indices, selection)

GitHub

このビット配列を、与えられたビット列とのスライスされた等質性に基づいて後選択する。

このビット配列に形状軸が含まれている場合、ポストセレクションを適用する前に、まず長いショットリストに平坦化される。 これは BitArray は、軸をまたぐショットの乱数を扱うことができないからである。

パラメーター

  • indices (Sequence[int] | int) – ポストセレクトを行うcbitsのインデックス一覧。 このビット配列がサンプラーによって生成されたものである場合、インデックスは(前述のように slice_bits()i``creg[i] )位置 ClassicalRegister に対応します。 負のインデックスも使用可能です。
  • selection (Sequence[bool |int] | bool |int) – 長さが に一致するバイナリ値のリスト( に bool``indicesキャストされる)。ここで、 indices[i]``selection[i] は に相当する。 で指定されたすべてのcbits indices が、で与えられた値 selectionをとらない限り、ショットは破棄されます。

戻り値

shape=(), num_bits=data.num_bits, num_shots<=data.num_shots を持つ新しいビット配列。

レイズ

戻りの型

BitArray

reshape

reshape(*shape)

GitHub

新しいビット配列を返す。

軸は num_shots 軸は、新しい形状がどの画像に適合するかによって、リシェーピング手順から含まれるか除外される。 例えば、形状が (20, 5) 、ショット数が 64 のビット配列の場合、 (100,) にリシェイプするとショット数はそのままで、 (200, 32) にリシェイプするとショット数は 32 に変更される。

パラメーター

*shape ( int | Iterable* [ *int | [I] terableShapeInput] ) – 希望する新しい形状。

戻り値

新しいビット配列。

レイズ

ValueError - 新しいシェイプに対応するサイズが sizesizenum_shots.

戻りの型

BitArray

slice_bits

slice_bits(indices)

GitHub

注目するインデックスをビット軸に沿ってスライスしたビット配列を返す。

このメソッドで使われる慣例は、 0 の最下位ビットに対応するというものである。 arrayの最下位ビットに対応する。 get_counts() または get_bitstrings()などで返されるビット列エントリーの最下位ビットに対応する。

このビット配列がサンプラーによって生成されたものであれば、インデックス i は次の場所に対応する。 ClassicalRegistercreg[i] に対応する。

パラメーター

indices (int |Sequence[int]) – スライスする際に注目すべきビットの位置。

戻り値

ビット軸に沿ってスライスされたビット配列。

レイズ

IndexError - ビット軸に無効なインデックスがある場合。

戻りの型

BitArray

slice_shots

slice_shots(indices)

GitHub

注目するインデックスをショット軸に沿ってスライスしたビット配列を返す。

パラメーター

indices (int |Sequence[int]) – スライスさせる際に注目すべきショットの位置。

戻り値

ショットの軸に沿って少し配列がスライスされている。

レイズ

IndexError - ショット軸に無効なインデックスがある場合。

戻りの型

BitArray

to_bool_array

to_bool_array(order='big')

GitHub

これを BitArray を真偽値配列に変換する。

パラメーター

order (Literal['big', 'little']) – "big" または のいずれか。それぞれ、各ビット列の最上位ビットと最下位ビットのどちらを に置くべきかを示す。 "little" [..., 0]

戻り値

NumPy、ブールの配列。

レイズ

ValueError - オーダーが "big" または "little" のいずれかでない場合。

戻りの型

ndarray [ tuple [ Any, …], dtype [ bool ]]

transpose

transpose(*axes)

GitHub

軸を転置したビット配列を返す。

パラメーター

axes - なし,int型のタプル,またはn個のint型. 詳細は ndarray.transpose を参照のこと。

戻り値

軸が並べ替えられたビット配列。

戻りの型

BitArray

レイズ

  • ValueError - axes がこのビット配列と一致しない場合。
  • ValueError - axes に範囲外のインデックスが含まれている場合。
このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。