In [1]:
from qitensor import *
ha = qudit('a', 3, latex_label='\\alpha')
hb = qubit('b', latex_label='\\beta')
x = (ha*hb).O.array()
x[{hb: 0, hb.H: 0}] = ha.O.random_unitary()
x[0,1,0,1] = 1e-3

po_qi_save = get_qitensor_printoptions()
po_np_save = np.get_printoptions()

In [2]:
x.space


Out[2]:
$\left| \alpha,\beta \right\rangle\left\langle \alpha,\beta \right|$

In [3]:
x


Out[3]:
$\scriptsize{\left< 0_{\alpha}0_{\beta} \right|}$$\scriptsize{\left< 0_{\alpha}1_{\beta} \right|}$$\scriptsize{\left< 1_{\alpha}0_{\beta} \right|}$$\scriptsize{\left< 1_{\alpha}1_{\beta} \right|}$$\scriptsize{\left< 2_{\alpha}0_{\beta} \right|}$$\scriptsize{\left< 2_{\alpha}1_{\beta} \right|}$
$\scriptsize{\left| 0_{\alpha}0_{\beta} \right>}$-0.147965-0.510256j0 0.625976-0.206869j0 0.082900+0.525578j0
$\scriptsize{\left| 0_{\alpha}1_{\beta} \right>}$0 0.001000+0.j 0000
$\scriptsize{\left| 1_{\alpha}0_{\beta} \right>}$-0.405207-0.395774j0-0.239999+0.668607j0 0.417500-0.015155j0
$\scriptsize{\left| 1_{\alpha}1_{\beta} \right>}$000000
$\scriptsize{\left| 2_{\alpha}0_{\beta} \right>}$ 0.100710+0.621911j0 0.014285+0.24601j 0 0.325512+0.660607j0
$\scriptsize{\left| 2_{\alpha}1_{\beta} \right>}$000000

In [4]:
set_qitensor_printoptions(zero_color_html='lightgreen')
np.set_printoptions(precision=2, suppress=True)
x


Out[4]:
$\scriptsize{\left< 0_{\alpha}0_{\beta} \right|}$$\scriptsize{\left< 0_{\alpha}1_{\beta} \right|}$$\scriptsize{\left< 1_{\alpha}0_{\beta} \right|}$$\scriptsize{\left< 1_{\alpha}1_{\beta} \right|}$$\scriptsize{\left< 2_{\alpha}0_{\beta} \right|}$$\scriptsize{\left< 2_{\alpha}1_{\beta} \right|}$
$\scriptsize{\left| 0_{\alpha}0_{\beta} \right>}$-0.15-0.51j0 0.63-0.21j0 0.08+0.53j0
$\scriptsize{\left| 0_{\alpha}1_{\beta} \right>}$000000
$\scriptsize{\left| 1_{\alpha}0_{\beta} \right>}$-0.41-0.4j 0-0.24+0.67j0 0.42-0.02j0
$\scriptsize{\left| 1_{\alpha}1_{\beta} \right>}$000000
$\scriptsize{\left| 2_{\alpha}0_{\beta} \right>}$ 0.10+0.62j0 0.01+0.25j0 0.33+0.66j0
$\scriptsize{\left| 2_{\alpha}1_{\beta} \right>}$000000

In [5]:
set_qitensor_printoptions(ipy_table_format_mode='latex', zero_color_latex='orange')
x


Out[5]:
$$\scriptsize{\begin{array}{|l|cc|cc|cc|} \hline &\left< 0_{\alpha}0_{\beta} \right| & \left< 0_{\alpha}1_{\beta} \right| & \left< 1_{\alpha}0_{\beta} \right| & \left< 1_{\alpha}1_{\beta} \right| & \left< 2_{\alpha}0_{\beta} \right| & \left< 2_{\alpha}1_{\beta} \right| \\ \hline \left| 0_{\alpha}0_{\beta} \right> & -0.15-0.51j & \color{orange}{0} & 0.63-0.21j & \color{orange}{0} & 0.08+0.53j & \color{orange}{0} \\ \left| 0_{\alpha}1_{\beta} \right> & \color{orange}{0} & \color{orange}{0} & \color{orange}{0} & \color{orange}{0} & \color{orange}{0} & \color{orange}{0} \\ \hline \left| 1_{\alpha}0_{\beta} \right> & -0.41-0.4j & \color{orange}{0} & -0.24+0.67j & \color{orange}{0} & 0.42-0.02j & \color{orange}{0} \\ \left| 1_{\alpha}1_{\beta} \right> & \color{orange}{0} & \color{orange}{0} & \color{orange}{0} & \color{orange}{0} & \color{orange}{0} & \color{orange}{0} \\ \hline \left| 2_{\alpha}0_{\beta} \right> & 0.10+0.62j & \color{orange}{0} & 0.01+0.25j & \color{orange}{0} & 0.33+0.66j & \color{orange}{0} \\ \left| 2_{\alpha}1_{\beta} \right> & \color{orange}{0} & \color{orange}{0} & \color{orange}{0} & \color{orange}{0} & \color{orange}{0} & \color{orange}{0} \\ \hline \end{array} }$$

In [6]:
set_qitensor_printoptions(ipy_table_format_mode='plain')
x


Out[6]:
HilbertArray(|a,b><a,b|,
array([[[[-0.15-0.51j,  0.00+0.j  ],
         [ 0.63-0.21j,  0.00+0.j  ],
         [ 0.08+0.53j,  0.00+0.j  ]],

        [[ 0.00+0.j  ,  0.00+0.j  ],
         [ 0.00+0.j  ,  0.00+0.j  ],
         [ 0.00+0.j  ,  0.00+0.j  ]]],


       [[[-0.41-0.4j ,  0.00+0.j  ],
         [-0.24+0.67j,  0.00+0.j  ],
         [ 0.42-0.02j,  0.00+0.j  ]],

        [[ 0.00+0.j  ,  0.00+0.j  ],
         [ 0.00+0.j  ,  0.00+0.j  ],
         [ 0.00+0.j  ,  0.00+0.j  ]]],


       [[[ 0.10+0.62j,  0.00+0.j  ],
         [ 0.01+0.25j,  0.00+0.j  ],
         [ 0.33+0.66j,  0.00+0.j  ]],

        [[ 0.00+0.j  ,  0.00+0.j  ],
         [ 0.00+0.j  ,  0.00+0.j  ],
         [ 0.00+0.j  ,  0.00+0.j  ]]]]))

In [7]:
set_qitensor_printoptions(**po_qi_save)
np.set_printoptions(**po_np_save)