Bird
Raised Fist0
NumPydata~10 mins

np.eye() for identity matrices in NumPy - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - np.eye() for identity matrices
Call np.eye(n)
↓
Create n x n matrix
↓
Fill diagonal with 1s
↓
Fill off-diagonal with 0s
↓
Return identity matrix
np.eye(n) creates an n by n matrix with 1s on the diagonal and 0s elsewhere, forming an identity matrix.
Execution Sample
NumPy
import numpy as np
I = np.eye(3)
print(I)
Creates a 3x3 identity matrix and prints it.
Execution Table
StepActionMatrix StateExplanation
1Call np.eye(3)NoneStart creating 3x3 matrix
2Initialize 3x3 matrix with zeros[[0,0,0],[0,0,0],[0,0,0]]All elements zero initially
3Set diagonal elements to 1[[1,0,0],[0,1,0],[0,0,1]]Diagonal elements set to 1
4Return matrix[[1,0,0],[0,1,0],[0,0,1]]Identity matrix ready
5Print matrix[[1. 0. 0.] [0. 1. 0.] [0. 0. 1.]]Output displayed
💡 Matrix created with diagonal 1s and zeros elsewhere; np.eye() execution complete.
Variable Tracker
VariableStartAfter Step 2After Step 3Final
INone[[0,0,0],[0,0,0],[0,0,0]][[1,0,0],[0,1,0],[0,0,1]][[1. 0. 0.] [0. 1. 0.] [0. 0. 1.]]
Key Moments - 2 Insights
Why are only the diagonal elements set to 1 and not others?
np.eye() specifically sets elements where row index equals column index to 1, as shown in step 3 of the execution_table.
What happens if we call np.eye(3, 4)?
np.eye(3,4) creates a 3x4 matrix with 1s on the diagonal up to the smaller dimension, similar to step 3 but with a rectangular shape.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 3, what is the matrix state?
A[[1,1,1],[1,1,1],[1,1,1]]
B[[0,0,0],[0,0,0],[0,0,0]]
C[[1,0,0],[0,1,0],[0,0,1]]
D[[0,1,0],[1,0,1],[0,1,0]]
💡 Hint
Check the 'Matrix State' column at step 3 in execution_table.
At which step does the matrix get its diagonal elements set to 1?
AStep 2
BStep 3
CStep 4
DStep 5
💡 Hint
Look at the 'Action' column describing setting diagonal elements.
If we change np.eye(3) to np.eye(4), how would the final matrix size change?
AIt becomes 4x4 with diagonal 1s
BIt remains 3x3
CIt becomes 3x4
DIt becomes 4x3
💡 Hint
np.eye(n) creates an n by n matrix as shown in variable_tracker for n=3.
Concept Snapshot
np.eye(n) creates an n x n identity matrix.
Diagonal elements are 1, others are 0.
Useful for linear algebra and matrix operations.
Can specify different rows and columns with np.eye(N, M).
Returns a numpy array.
Full Transcript
The np.eye() function creates an identity matrix of size n by n. It starts by initializing a matrix filled with zeros. Then it sets the diagonal elements, where the row and column indices are equal, to 1. This results in a matrix with 1s on the diagonal and 0s elsewhere. For example, np.eye(3) creates a 3x3 matrix with ones on the diagonal. This matrix is useful in many data science and math tasks. The execution steps show the matrix state changing from all zeros to the identity matrix. If you change the size parameter, the matrix size changes accordingly.

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

  1. 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.
  2. Step 2: Apply np.eye(4)

    Calling np.eye(4) creates a 4x4 matrix with 1s on the main diagonal and 0s elsewhere.
  3. Final Answer:

    A 4x4 identity matrix with 1s on the main diagonal -> Option A
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    np.eye(3, 5) -> Option B
  4. 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

  1. Step 1: Understand the k parameter in np.eye()

    The parameter k=1 shifts the diagonal of 1s one above the main diagonal.
  2. 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.
  3. Final Answer:

    [[0. 1. 0.] [0. 0. 1.] [0. 0. 0.]] -> Option D
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    The value of k is too large for the matrix shape -> Option C
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    np.eye(5, k=-1) with 1s just below main diagonal -> Option A
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard