code: def project_op(self, op):
          
          if not self.is_orthonormal():  # pragma no coverage
              raise ValueError("project_op only implemented for orthonormal operator bases")
          return self.basis_transform.H * qt.operator_to_vector(op).data
docs: Project an operator onto the basis.
  
          :param qutip.Qobj op: The operator to project.
          :return: The projection coefficients as a numpy array.
          :rtype: scipy.sparse.csr_matrix