BindingsArray
class qiskit.primitives.BindingsArray(data=None, shape=None)
ベース: ShapedMixin
. に対するパラメータ qiskit.QuantumCircuitバインディングの値セットを保存します。
1つのパラメータバインディングセットは、自由 qiskit.circuit.Parameter変数sを持つ回路にバインドする数値を提供します。 このクラスのインスタンスは、そのような集合の配列型コレクションを格納します。 最も単純な例は、単一のパラメータバインディングセットからなる0次元配列であり、一方、パラメータバインディングセットのn次元配列は、値に対するn次元のスイープを表します。
保存形式は、パラメータに紐付けられた {params_0: values_0,...}配列の辞書です。 各配列の最後の次元が回路パラメータ(の一部)をインデックスとして参照する場合、この規約が用いられる。 例えば、の最後の次元が values_0 25である場合、これは25個の異なるパラメータに対する結合値の候補 params_0の配列を表し、その先頭形状は結合配列の shape 配列となります。 これにより、異なるパラメータの値を1つの大きな配列に格納するか、複数の小さな配列に分けて格納するかについて、柔軟に対応できます。
import numpy as np
from qiskit.primitives import BindingsArray
# 0-d array (i.e. only one binding)
BindingsArray({"a": 4, ("b", "c"): [5, 6]})
# single array, last index is parameters
parameters = tuple(f"a{idx}" for idx in range(100))
BindingsArray({parameters: np.ones((10, 10, 100))})
# multiple arrays, where each last index is parameters. notice that it's smart enough to
# figure out that a missing last dimension corresponds to a single parameter.
BindingsArray(
{("c", "a"): np.zeros((10, 10, 2)), "b": np.ones((10, 10))}
). を初期化する BindingsArray。
引 shape 数は、渡された配列から一意に推測できる場合は、必ずしも明示的に指定する必要はありません。 エントリのキーがパラメータ data を1つしか含まず、かつ対応する配列の次元数が1で終わる場合、曖昧さが生じます。 この場合、それがパラメータに対するインデックスなのか、それとも に組み込むべき shapeなのかは判断できません。
オブジェクトはfloat型の値のみ Parameter を表現できるため、このクラスは渡されたすべての値をfloat型にキャストします。 複素数など、互換性のないデータ型が指定された場合、例外 TypeError が発生します。
パラメーター
- data (BindingsArrayLike | None) – 1つ以上のパラメータから、それらをバインドする値の配列へのマッピング。ここで、最後の軸はパラメータを扱う。
- shape (ShapeInput | None) – これらのバインディングにおける各配列の先頭要素。
昇給
- ValueError – すべての入力が
None. - ValueError – 配列から形状を自動的に推測できない場合、または指定された配列の形状に不整合がある場合。
- TypeError – 一部の値がfloat型にキャストできない場合。
属性
data
この配列のキーワード値。
ndim
num_parameters
パラメータの総数。
shape
size
方法
as_array
as_array(parameters=None)
このバインディング配列の内容を、単一の NumPy 配列として返します。
パラメータは、返される配列の最後の次元に沿ってインデックス付けされます。
パラメーター
parameters (Iterable[Parameter |str] | None) – 出力の順序を決定するオプションのパラメータ。
戻り値
このバインディング配列を単一の NumPy 配列として扱います。
昇給
ValueError – が指定されているが、で検出された parameters``data ものと一致しない場合。
戻りの型
bind
bind(circuit, loc)
指定されたインデックスの値にバインドされた新しい回路を返します。
パラメーター
- circuit (QuantumCircuit) – 結合させる回路。
- loc (tuple[int, ...]) – この配列の各次元に対応するインデックスのタプル。
戻り値
結合回路。
昇給
ValueError – インデックスに含まれる値の数が正しくない場合。
戻りの型
bind_all
bind_all(circuit)
同じ形状を持つ結合済み回路のオブジェクト配列を返す。
パラメーター
circuit (QuantumCircuit) – 結合させる回路。
戻り値
バインドされたすべての回路を含む、同じ形状のオブジェクト配列。
戻りの型
coerce
classmethod coerce(bindings_array)
入力である を新しい BindingsArrayLike に変換 BindingsArrayする。
パラメーター
bindings_array (Mapping[Parameter |str |tuple[Parameter |str, ...], ArrayLike]) – バインディング配列とするオブジェクト。
戻り値
新しいバインディング配列。
戻りの型
ravel
ravel()
1次元の BindingsArray 新しいオブジェクトを返す。
返されるバインディング配列は、 (size, )によって与えられる shape ものであり、そのサイズは、このバインディング配列の size サイズである。
戻り値
新しいバインディング配列。
戻りの型
reshape
reshape(*shape)
形状の異なる新しいオブジェクト BindingsArray を返す。
これにより、同じ配列に対する新しいビューが生成されます。
パラメーター
shape (int |Iterable[int]) – 返されるバインディング配列の形状。
戻り値
新しいバインディング配列。
昇給
ValueError – 指定された形状が、現在のサイズとは異なる製品の場合。
戻りの型