Skip to main content
IBM Quantum Platform

BitArray

class qiskit.primitives.BitArray(array, num_bits)

GitHub

베이스: ShapedMixin

비트 값 배열을 저장합니다.

이 객체에는 비트스트링 배열을 나타내는 연속된 단일 데이터 블록이 포함되어 있습니다. 마지막 축은 오버 패킹된 비트, 두 번째 마지막 축은 오버 샷, 앞의 축은 이러한 비트를 샘플링하기 위해 실행된 펍의 모양에 해당합니다.

일반적으로 이 객체는 단일 을 통해 액세스되는 구성 DataBin PubResult.data요소 중 하나로 반환됩니다. 사용자는 일반적으로 이 클래스를 직접 생성하지 않지만, 비트스트링과 유사한 데이터를 다른 형식으로 가지고 있으며 BitArray이를 로 변환하고 싶은 경우,, from_counts() from_samples()또는 중 하나를 from_bool_array()사용할 수 있습니다.

bitstrings를 to_bool_array() 메서드를 사용하여 확장된 bool 배열로 "풀어낼" 수 있습니다.

이 클래스는 비트 단위 & AND, | OR, ^ XOR 및 ~ NOT 연산자를 지원하며, 이 이진 연산자들은 두 BitArray 개의 인스턴스에 대해 작동합니다.

해당 클래스는 또한 "인덱싱" 구문을 지원합니다 bit_array[indices]. 이들은 해당 pub과 동일한 형상의 단일 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, "측정")num_bits=5 이 됩니다.

num_shots

각 구성의 레지스터에서 샘플링된 샷 수입니다.

보다 정확하게는 두 번째 마지막 축의 길이인 array.

shape

size


메소드

bitcount

bitcount()

GitHub

각 샷의 이진 표현에 나타나는 샷의 수를 계산합니다.

리턴

모양이 있는 numpy.uint64-array (*shape, num_shots).

리턴 유형

NDArray [ 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 - 제공된 옵저버에 이 비트 배열로 브로드캐스트할 수 있는 모양이 없는 경우.
  • ValueError - 제공된 옵저버의 큐비트 수가 이 비트 배열의 비트 수와 같지 않은 경우.
  • ValueError - 제공된 관측값이 대각선이 아닌 경우.

리턴 유형

NDArray [ float64 ]

from_bool_array

static from_bool_array(array, order='big')

GitHub

부울 배열로 새 비트 배열을 구성합니다.

매개변수

  • array (NDArray[bool]) – 변환할 배열로, 마지막 축을 따라 “bitstrings”가 배치되어 있습니다.
  • order (Literal['big', 'little']) – "big" 또는 "little" 중 하나로, array[..., 0] 이 각 비트 문자열의 가장 중요한 비트 또는 가장 중요하지 않은 비트에 해당하는지 여부를 각각 나타냅니다.

리턴

새로운 비트 배열입니다.

리턴 유형

BitArray

from_counts

static from_counts(counts, num_bits=None)

GitHub

하나 이상의 Counts-형 객체에서 새 비트 배열을 구성합니다.

counts 키는 정수, 16진수 또는 비트스트링일 수 있습니다. 해당 값은 해당 값의 발생 횟수를 나타냅니다.

매개변수

  • counts (Mapping[str |int, int] | Iterable[Mapping[str |int, int]]) – 샷 수가 동일한 하나 이상의 카운트형 매핑.
  • num_bits (int | None) – 샷당 원하는 비트 수입니다. 설정하지 않으면 발견되는 가장 큰 값이 최소 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 이면 이 배열의 모든 위치의 카운트가 합쳐집니다.

리턴

비트 문자열 목록입니다.

리턴 유형

list[ str ]

get_counts

get_counts(loc=None)

GitHub

비트 문자열 키가 포함된 카운트 사전을 반환합니다.

매개변수

loc (int |tuple[int, ...] | None) – 이 배열의 어떤 항목에 대해 사전을 반환할지 설정합니다. None 이면 이 배열의 모든 위치의 카운트가 합쳐집니다.

리턴

비트스트링을 해당 비트스트링의 발생 횟수에 매핑하는 사전입니다.

리턴 유형

dict[ str, int ]

get_int_counts

get_int_counts(loc=None)

GitHub

비트 문자열이 ints로 저장되는 카운트 사전을 반환합니다.

매개변수

loc (int |tuple[int, ...] | None) – 이 배열의 어떤 항목에 대해 사전을 반환할지 설정합니다. None 이면 이 배열의 모든 위치의 카운트가 합쳐집니다.

리턴

ints 을 해당 int 의 발생 횟수에 매핑하는 사전입니다.

리턴 유형

dict[ 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) – 길이가 와 일치하는 이진값 목록( indices로 형변환됨) bool으로, 는 에 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 - 새 모양에 해당하는 크기가 다음 중 하나에 해당하지 않는 경우 size이거나 sizenum_shots.

리턴 유형

BitArray

slice_bits

slice_bits(indices)

GitHub

관심 있는 인덱스의 비트 축을 따라 슬라이스된 비트 배열을 반환합니다.

참고

이 메서드에서 사용하는 규칙은 0 인덱스가 가장 작은 비트에 해당한다는 것입니다 array또는 이에 상응하는 가장 오른쪽에 있는 비트 문자열 항목에 해당합니다 get_counts() 또는 get_bitstrings()등입니다.

creg[i]이 비트 배열이 샘플러에 의해 생성된 것이라면, 인덱스 i 는 위치 에 ClassicalRegister 해당합니다.

매개변수

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 [ bool ]

transpose

transpose(*axes)

GitHub

축이 전치된 비트 배열을 반환합니다.

매개변수

- 없음, 정수 또는 n개의 정수 튜플. 참조 ndarray.transpose 를 참조하세요.

리턴

축이 순열된 비트 배열입니다.

리턴 유형

BitArray

레이즈

  • ValueError - axes 이 비트 배열과 일치하지 않는 경우.
  • ValueError - axes 에 범위를 벗어난 인덱스가 포함되어 있는 경우.
이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.