sparse eye is not that convenient to index / set.

indeed np.eye -- no idea why I used diag