Source code for toqito.matrices.standard_basis

"""Constructs the standard basis."""

import numpy as np


[docs] def standard_basis(dim: int, flatten: bool = False) -> list[np.ndarray]: r"""Create standard basis of dimension `dim`. Create a list containing the elements of the standard basis for the given dimension: \[ |1> = (1, 0, 0, ..., 0)^T |2> = (0, 1, 0, ..., 0)^T . . . |n> = (0, 0, 0, ..., 1)^T \] This function was inspired by [@Seshadri_2021_Git, Seshadri_2021_Theory, Seshadri_2021_Versatile] Examples: ```python exec="1" source="above" from toqito.matrices import standard_basis print(standard_basis(2)) ``` Args: dim: The dimension of the basis. flatten: If True, the basis is returned as a flattened list. Returns: A list of numpy.ndarray of shape (n, 1). """ first_basis_vector = np.zeros(dim) if flatten else np.zeros((dim, 1)) first_basis_vector[0] = 1.0 # The standard_basis is obtained by cyclic permutations of the first basis # vector return [np.array([first_basis_vector[i - j] for i in range(dim)]) for j in range(dim)]