We use np.eye() to create identity matrices easily. Identity matrices have 1s on the diagonal and 0s elsewhere, which are useful in math and data science.
When you need a matrix that does not change other matrices when multiplied.
When initializing weights or parameters in machine learning models.
When you want to create a simple square matrix with 1s on the diagonal for testing.
When performing linear algebra operations that require identity matrices.
Syntax
NumPy
np.eye(N, M=None, k=0, dtype=float, order='C')
N is the number of rows (and columns if M is not given).
M is the number of columns (optional, defaults to N).
Examples
Creates a 3x3 identity matrix with 1s on the main diagonal.
NumPy
np.eye(3)
Creates a 3x4 matrix with 1s on the main diagonal and 0s elsewhere.
NumPy
np.eye(3, 4)
Creates a 4x4 matrix with 1s on the diagonal just above the main diagonal.
NumPy
np.eye(4, k=1)
Sample Program
This program shows three examples of np.eye():
A 4x4 identity matrix.
A 3x5 matrix with 1s on the main diagonal.
A 5x5 matrix with 1s just below the main diagonal.
NumPy
import numpy as np
# Create a 4x4 identity matrix
identity_matrix = np.eye(4)
print(identity_matrix)
# Create a 3x5 matrix with 1s on the main diagonal
rect_matrix = np.eye(3, 5)
print(rect_matrix)
# Create a 5x5 matrix with 1s on the diagonal below the main diagonal
offset_matrix = np.eye(5, k=-1)
print(offset_matrix)
OutputSuccess
Important Notes
The k parameter shifts the diagonal: k=0 is the main diagonal, positive k moves above, negative k moves below.
You can specify the data type with dtype, for example dtype=int to get integers.
Summary
np.eye() creates identity or diagonal matrices with 1s on a chosen diagonal.
It is useful for math, machine learning, and testing.
You can control size, shape, and which diagonal has the 1s.
Practice
(1/5)
1. What does the function np.eye(4) create in NumPy?
easy
A. A 4x4 identity matrix with 1s on the main diagonal
B. A 4x4 matrix filled with zeros
C. A 4x4 matrix filled with ones
D. A 4x4 diagonal matrix with 1s on the first upper diagonal
Solution
Step 1: Understand np.eye() default behavior
By default, np.eye(n) creates an n x n identity matrix with 1s on the main diagonal and 0s elsewhere.
Step 2: Apply np.eye(4)
Calling np.eye(4) creates a 4x4 matrix with 1s on the main diagonal and 0s elsewhere.
Final Answer:
A 4x4 identity matrix with 1s on the main diagonal -> Option A
Quick Check:
np.eye(4) = 4x4 identity matrix [OK]
Hint: np.eye(n) makes nxn identity matrix by default [OK]
Common Mistakes:
Confusing np.eye() with np.ones() or np.zeros()
Thinking np.eye() fills all elements with 1
Assuming 1s are on an off-diagonal by default
2. Which of the following is the correct syntax to create a 3x5 identity matrix with 1s on the main diagonal using np.eye()?
easy
A. np.eye(5, 3)
B. np.eye(3, 5)
C. np.eye(3)
D. np.eye(5)
Solution
Step 1: Understand np.eye() parameters
The first parameter is the number of rows, the second is columns. So np.eye(3, 5) creates a 3x5 matrix.
Step 2: Check the options
np.eye(3, 5) correctly uses np.eye(3, 5) to create a 3x5 matrix with 1s on the main diagonal.
Final Answer:
np.eye(3, 5) -> Option B
Quick Check:
np.eye(rows, cols) = correct syntax [OK]
Hint: First arg = rows, second = columns in np.eye() [OK]
Common Mistakes:
Swapping rows and columns parameters
Using only one parameter for non-square matrix
Confusing np.eye() with np.identity()
3. What is the output of the following code?
import numpy as np
print(np.eye(3, k=1))
medium
A. [[0. 0. 1.]
[0. 1. 0.]
[1. 0. 0.]]
B. [[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
C. [[0. 0. 0.]
[1. 0. 0.]
[0. 1. 0.]]
D. [[0. 1. 0.]
[0. 0. 1.]
[0. 0. 0.]]
Solution
Step 1: Understand the k parameter in np.eye()
The parameter k=1 shifts the diagonal of 1s one above the main diagonal.
Step 2: Visualize the 3x3 matrix with 1s on the first upper diagonal
The 1s appear at positions (0,1) and (1,2), zeros elsewhere.
Final Answer:
[[0. 1. 0.]
[0. 0. 1.]
[0. 0. 0.]] -> Option D
Quick Check:
k=1 shifts diagonal up by 1 [OK]
Hint: k shifts diagonal: 0=main, 1=above, -1=below [OK]
Common Mistakes:
Ignoring the k parameter effect
Assuming k=1 means main diagonal
Confusing rows and columns in output
4. The code below throws an error. What is the mistake?
import numpy as np
matrix = np.eye(4, 3, k=4)
print(matrix)
medium
A. np.eye() does not accept three arguments
B. The matrix must be square for np.eye()
C. The value of k is too large for the matrix shape
D. The print statement is incorrect
Solution
Step 1: Check the meaning of k relative to matrix size
The parameter k=4 means the diagonal of 1s is shifted 4 above the main diagonal.
Step 2: Compare k with matrix dimensions
For a 4x3 matrix, the maximum upper diagonal shift is 2 (columns - 1). k=4 is invalid and causes an error.
Final Answer:
The value of k is too large for the matrix shape -> Option C
Quick Check:
k must be within valid diagonal range [OK]
Hint: k must fit within matrix diagonal limits [OK]
Common Mistakes:
Assuming any k value works
Thinking np.eye() only creates square matrices
Blaming print instead of parameter error
5. You want to create a 5x5 matrix with 1s on the diagonal just below the main diagonal using np.eye(). Which code achieves this and what is the resulting matrix?
hard
A. np.eye(5, k=-1) resulting in 1s at positions (1,0), (2,1), (3,2), (4,3)
B. np.eye(5, k=1) resulting in 1s at positions (0,1), (1,2), (2,3), (3,4)
C. np.eye(5) resulting in 1s on the main diagonal
D. np.eye(5, k=-2) resulting in 1s two diagonals below the main
Solution
Step 1: Understand k parameter for diagonal shift
Negative k shifts the diagonal of 1s below the main diagonal. k=-1 means one diagonal below.
Step 2: Apply np.eye(5, k=-1)
This creates a 5x5 matrix with 1s at positions (1,0), (2,1), (3,2), (4,3) and zeros elsewhere.
Final Answer:
np.eye(5, k=-1) with 1s just below main diagonal -> Option A
Quick Check:
k=-1 shifts diagonal down by 1 [OK]
Hint: Use negative k for diagonals below main [OK]
Common Mistakes:
Using positive k for below main diagonal
Confusing positions of 1s in matrix
Assuming np.eye() only creates main diagonal
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.