Skip to content

basis

A basis state represents the standard basis vectors of some n-dimensional Hilbert Space.

Here, n can be given as a parameter as shown below.

basis

basis(dim: int, pos: int) -> ndarray

Obtain the ket of dimension dim 1.

Examples:

The standard basis ket vectors given as \(|0 \rangle\) and \(|1 \rangle\) where

\[ |0 \rangle = \left[1, 0 \right]^{\text{T}} \quad \text{and} \quad |1 \rangle = \left[0, 1 \right]^{\text{T}}, \]

can be obtained in |toqito⟩ as follows.

Example: Ket basis vector: \(|0\rangle\).

from toqito.states import basis
print(basis(2, 0))

[[1] [0]]

Example: Ket basis vector: \(|1\rangle\).

from toqito.states import basis
print(basis(2, 1))

[[0] [1]]

Raises:

  • ValueError

    If the input position is not in the range [0, dim - 1].

Parameters:

  • dim (int) –

    The dimension of the column vector.

  • pos (int) –

    0-indexed position of the basis vector where the 1 will be placed.

Returns:

  • ndarray

    The column vector of dimension dim with all entries set to 0 except the entry at pos which is set to 1.

References

1 Wikipedia. Bra-ket notation. link.

Source code in toqito/states/basis.py
def basis(dim: int, pos: int) -> np.ndarray:
    r"""Obtain the ket of dimension `dim` [@WikiBraKet].

    Examples:
        The standard basis ket vectors given as \(|0 \rangle\) and \(|1 \rangle\) where

        \[
            |0 \rangle = \left[1, 0 \right]^{\text{T}} \quad \text{and} \quad
            |1 \rangle = \left[0, 1 \right]^{\text{T}},
        \]

        can be obtained in `|toqito⟩` as follows.

        Example:  Ket basis vector: \(|0\rangle\).

        ```python exec="1" source="above"
        from toqito.states import basis
        print(basis(2, 0))
        ```

        Example: Ket basis vector: \(|1\rangle\).

        ```python exec="1" source="above"
        from toqito.states import basis
        print(basis(2, 1))
        ```

    Raises:
        ValueError: If the input position is not in the range [0, dim - 1].

    Args:
        dim: The dimension of the column vector.
        pos: 0-indexed position of the basis vector where the 1 will be placed.

    Returns:
        The column vector of dimension `dim` with all entries set to `0` except the entry at `pos` which is set to `1`.

    """
    if pos >= dim or pos < 0:
        raise ValueError("Invalid: The `pos` variable needs to be between [0, dim - 1] for ket function.")

    ret = np.zeros(dim, dtype=np.int64)
    ret[pos] = 1
    return ret.reshape(-1, 1)