跳转到主要内容

quantum-viz.js Python工具

项目描述

quantum-viz

quantum-vizquantum-viz.js 的 Python 包伴侣,它是一个 JavaScript 包,支持使用 JSON 格式的输入数据可视化任意量子门、经典控制逻辑和门组块。 quantum-viz 包含一个 Jupyter 小部件,并将包括使用 quantum-viz.js JSON 架构将用常见量子编程库编写的量子电路转换为 JSON 的支持。

quantum-viz screenshot

安装

您可以通过 PyPI 的 pip 安装 quantum-viz.js 小部件

pip install quantum-viz

示例

要使用量子可视化小部件,请在 Jupyter 笔记本的单元格中运行以下示例代码。

from quantum_viz import Viewer

# Create a quantum circuit that prepares a Bell state
circuit = {
    "qubits": [{ "id": 0 }, { "id": 1, "numChildren": 1 }],
    "operations": [
        {
            "gate": 'H',
            "targets": [{ "qId": 0 }],
        },
        {
            "gate": 'X',
            "isControlled": "True",
            "controls": [{ "qId": 0 }],
            "targets": [{ "qId": 1 }],
        },
        {
            "gate": 'Measure',
            "isMeasurement": "True",
            "controls": [{ "qId": 1 }],
            "targets": [{ "type": 1, "qId": 1, "cId": 0 }],
        },
    ],
}

widget = Viewer(circuit)
widget # Display the widget

quantum-viz example

Qiskit 集成

通过安装可选的 [qiskit] 依赖项,您可以使用 Qiskit 的 QuantumCircuit API 定义电路,并在 Jupyter 上使用 Viewer 小部件进行渲染,例如。

from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
from quantum_viz import Viewer

qr = QuantumRegister(3, 'q')
anc = QuantumRegister(1, 'ancilla')
cr = ClassicalRegister(3, 'c')
qc = QuantumCircuit(qr, anc, cr)


qc.h(qr[0:3])
qc.x(anc[0])
qc.h(anc[0])
qc.cx(qr[0:3], anc[0])
qc.h(qr[0:3])
qc.barrier(qr)
qc.measure(qr, cr)

Viewer(qc)

可选地,您还可以从 quantum_viz.utils 中导入 display 方法,以便在新浏览器窗口中渲染电路。

from quantum_viz.utils import display
display(qc)

贡献

查看我们的贡献指南,了解您如何为 quantum-viz 做出贡献。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

quantum-viz-1.0.5.tar.gz (10.1 kB 查看哈希值)

上传日期

构建分布

quantum_viz-1.0.5-py3-none-any.whl (10.5 kB 查看哈希值)

上传日期 Python 3

支持者