I have a matrix I know is triangular and I want to diagonalize it. Since the eigenvalues of a triangular matrix are easy to find (just the diagonal values), this problem is theoretically exactly solvable, so I figured that using numpy.linalg.eig might be overkill and might be slower/not as accurate as it could be. That is, of course, unless eig is smart enough to work efficiently with a triangular matrix, but I couldn't find any documentation that assures this. Technically I COULD use numpy.linalg.solve to solve (A-lambda I)x=0 for each eigenvalue lambda to find the eigenvectors, but I have a decent amount of matrices (~200) and a decent amount of eigenvalues (also ~200) so I feel like this might not be optimal either. Continue reading...