What are the advantages of using numpy.identity over numpy.eye?
identity
just calls eye
so there is no difference in how the arrays are constructed. Here's the code for identity
:
def identity(n, dtype=None):
from numpy import eye
return eye(n, dtype=dtype)
As you say, the main difference is that with eye
the diagonal can may be offset, whereas identity
only fills the main diagonal.
Since the identity matrix is such a common construct in mathematics, it seems the main advantage of using identity
is for its name alone.
To see the difference in an example, run the below codes:
import numpy as np
#Creates an array of 4 x 4 with the main diagonal of 1
arr1 = np.eye(4)
print(arr1)
print("\n")
#or you can change the diagonal position
arr2 = np.eye(4, k=1) # or try with another number like k= -2
print(arr2)
print("\n")
#but you can't change the diagonal in identity
arr3 = np.identity(4)
print(arr3)