mindquantum.core.gates.MeasureResult

查看源文件
class mindquantum.core.gates.MeasureResult[源代码]

测量结果容器。

样例:

>>> from mindquantum.algorithm.library import qft
>>> from mindquantum.simulator import Simulator
>>> sim = Simulator('mqvector', 2)
>>> res = sim.sampling(qft(range(2)).measure_all(), shots=1000, seed=42)
>>> res
shots: 1000
Keys: q1 q0│0.00   0.065        0.13       0.194       0.259       0.324
───────────┼───────────┴───────────┴───────────┴───────────┴───────────┴
         00│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

         01│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

         10│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

         11│▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

{'00': 230, '01': 254, '10': 257, '11': 259}
>>> res.data
{'00': 230, '01': 254, '10': 257, '11': 259}
add_measure(measure)[源代码]

在此测量结果容器中添加测量门。测量键在此测量结果容器中应是唯一的。

参数:
  • measure (Union[Iterable, Measure]) - 一个或多个测量门。

collect_data(samples)[源代码]

收集所有测量门测量出的比特串。

参数:
  • samples (numpy.ndarray) - 一个二维(N x M) numpy数组,以0或1存储采样位字符串,其中N表示拍摄次数,M表示此测量容器中的键数。

property data

获取采样数据。

返回:

dict,采样数据。

property keys_map

返回测量门名词与出现顺序的关系的字典。

reverse_endian()[源代码]

反转测量结果的字节序。

这个函数反转测量结果中每个比特串的比特顺序,同时也反转键的顺序。

返回:

MeasureResult,一个新的 MeasureResult 对象,具有反转的字节序。

select_keys(*keys)[源代码]

从该测量容器中选择某些测量键。

参数:
  • keys (tuple[str]) - 要选择的键。

样例:

>>> from mindquantum.algorithm.library import qft
>>> from mindquantum.core.gates import H
>>> from mindquantum.simulator import Simulator
>>> circ = qft(range(2)).measure('q0_0', 0).measure('q1_0', 1)
>>> circ.h(0).measure('q0_1', 0)
>>> circ
      ┏━━━┓ ┏━━━━━━━━━┓         ┍━━━━━━━━┑ ┏━━━┓ ┍━━━━━━━━┑
q0: ──┨ H ┠─┨ PS(π/2) ┠───────╳─┤ M q0_0 ├─┨ H ┠─┤ M q0_1 ├───
      ┗━━━┛ ┗━━━━┳━━━━┛       ┃ ┕━━━━━━━━┙ ┗━━━┛ ┕━━━━━━━━┙
                 ┃      ┏━━━┓ ┃ ┍━━━━━━━━┑
q1: ─────────────■──────┨ H ┠─╳─┤ M q1_0 ├────────────────────
                        ┗━━━┛   ┕━━━━━━━━┙
>>> sim = Simulator('mqvector', circ.n_qubits)
>>> res = sim.sampling(circ, shots=500, seed=42)
>>> new_res = res.select_keys('q0_1', 'q1_0')
>>> new_res
shots: 500
Keys: q1_0 q0_1│0.00   0.068       0.136       0.204       0.272        0.34
───────────────┼───────────┴───────────┴───────────┴───────────┴───────────┴
             00│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

             01│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

             10│▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

             11│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

{'00': 127, '01': 107, '10': 136, '11': 130}
svg(style=None)[源代码]

将当前测量结果显示为jupyter notebook中的SVG图片。

参数:
  • style (dict, str) - 设置svg样式的样式。目前,我们支持 'official'。默认值: None

to_json(filename=None)[源代码]

将测量结果转换为JSON格式,并可选择性地保存到文件中。

参数:
  • filename (str) - 保存 JSON 的文件名。默认值: None

返回:

str,对象的JSON表示。