Thank you for the response!
I understand what you mean by the reordering of the eigenvalues/eigenstates, but I believe I deal with this problem with the following lines:
idx = eigen_val.argsort() eigen_val= eigen_val[idx] eigen_vec = eigen_vec[:,idx]
This makes me reaslise that the comparison of the eigenvectors calculated by sparse and dense is not sensible. But it seems that the calculation of the eigenvalues is sensible and the length dependent success of the sparse algorithm in the calculation of the eigenvalues still seems very mysterious to me.