Bird
Raised Fist0
NumPydata~20 mins

np.linalg.eig() for eigenvalues in NumPy - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Eigen Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of eigenvalues from a 2x2 matrix?
Given the matrix [[4, 2], [1, 3]], what are the eigenvalues computed by np.linalg.eig()?
NumPy
import numpy as np
matrix = np.array([[4, 2], [1, 3]])
eigenvalues, _ = np.linalg.eig(matrix)
print(eigenvalues)
A[5.0, 2.0]
B[3.0, 4.0]
C[6.0, 1.0]
D[4.0, 3.0]
Attempts:
2 left
💡 Hint
Recall eigenvalues satisfy the characteristic equation det(A - λI) = 0.
❓ data_output
intermediate
1:00remaining
Number of eigenvalues returned by np.linalg.eig()
If you apply np.linalg.eig() to a 3x3 matrix, how many eigenvalues will be returned?
NumPy
import numpy as np
matrix = np.eye(3)
eigenvalues, _ = np.linalg.eig(matrix)
print(len(eigenvalues))
A6
B1
C3
D9
Attempts:
2 left
💡 Hint
The number of eigenvalues equals the size of the matrix dimension.
🔧 Debug
advanced
2:00remaining
Identify the error in eigenvalue calculation code
What error will this code raise?
import numpy as np
matrix = np.array([1, 2, 3, 4])
eigenvalues, eigenvectors = np.linalg.eig(matrix)
NumPy
import numpy as np
matrix = np.array([1, 2, 3, 4])
eigenvalues, eigenvectors = np.linalg.eig(matrix)
ALinAlgError: Last 2 dimensions of the array must be square
BTypeError: 'numpy.ndarray' object is not callable
CValueError: too many values to unpack (expected 2)
DNo error, outputs eigenvalues and eigenvectors
Attempts:
2 left
💡 Hint
Check the shape of the input matrix for eig().
🧠 Conceptual
advanced
1:30remaining
What does np.linalg.eig() return?
Which of the following best describes the outputs of np.linalg.eig() when applied to a square matrix?
AOnly the eigenvectors as a matrix
BA tuple with eigenvalues array and eigenvectors matrix
COnly the eigenvalues as a list
DA single array combining eigenvalues and eigenvectors
Attempts:
2 left
💡 Hint
Think about what information is needed to fully describe eigen decomposition.
🚀 Application
expert
2:30remaining
Find the eigenvalue with the largest magnitude
Given the matrix [[0, -1], [1, 0]], which eigenvalue has the largest absolute value?
NumPy
import numpy as np
matrix = np.array([[0, -1], [1, 0]])
eigenvalues, _ = np.linalg.eig(matrix)
max_abs = max(abs(eigenvalues))
print(max_abs)
A2.0
B1.0
C0.0
DComplex number with magnitude 1.0
Attempts:
2 left
💡 Hint
Consider eigenvalues of rotation matrices and their magnitudes.

Practice

(1/5)
1. What does the function np.linalg.eig() return when applied to a square matrix?
easy
A. The determinant and inverse of the matrix
B. An array of eigenvalues and a matrix of eigenvectors
C. The transpose and trace of the matrix
D. The sum and product of matrix elements

Solution

  1. Step 1: Understand the purpose of np.linalg.eig()

    This function is designed to find eigenvalues and eigenvectors of a square matrix.
  2. Step 2: Recall the output format

    It returns two objects: one array with eigenvalues and one matrix with eigenvectors as columns.
  3. Final Answer:

    An array of eigenvalues and a matrix of eigenvectors -> Option B
  4. Quick Check:

    Eigenvalues and eigenvectors [OK]
Hint: Remember: eig() returns eigenvalues and eigenvectors [OK]
Common Mistakes:
  • Confusing eigenvalues with determinant
  • Expecting only one output instead of two
  • Mixing eigenvectors with matrix transpose
2. Which of the following is the correct syntax to compute eigenvalues and eigenvectors of matrix A using NumPy?
easy
A. eigenvalues, eigenvectors = np.linalg.eig(A)
B. eigenvalues = np.linalg.eigvals(A)
C. eigenvectors, eigenvalues = np.linalg.eig(A)
D. eigenvalues, eigenvectors = np.eig.linalg(A)

Solution

  1. Step 1: Recall the correct function and output order

    The function np.linalg.eig() returns eigenvalues first, then eigenvectors.
  2. Step 2: Check syntax correctness

    eigenvalues, eigenvectors = np.linalg.eig(A) correctly assigns eigenvalues and eigenvectors in order from np.linalg.eig(A).
  3. Final Answer:

    eigenvalues, eigenvectors = np.linalg.eig(A) -> Option A
  4. Quick Check:

    Correct function and order [OK]
Hint: eig() returns (values, vectors) in that order [OK]
Common Mistakes:
  • Swapping eigenvalues and eigenvectors in assignment
  • Using wrong function like np.linalg.eigvals() for both outputs
  • Incorrect module or function name
3. Given the matrix A = np.array([[2, 0], [0, 3]]), what will be the output of np.linalg.eig(A)[0]?
medium
A. [3. 2.]
B. [0. 0.]
C. [2. 3.]
D. [5. 0.]

Solution

  1. Step 1: Identify eigenvalues of a diagonal matrix

    For a diagonal matrix, eigenvalues are the diagonal elements: 2 and 3.
  2. Step 2: Check the output of np.linalg.eig(A)[0]

    This returns the eigenvalues array, which will be [2. 3.].
  3. Final Answer:

    [2. 3.] -> Option C
  4. Quick Check:

    Diagonal elements = eigenvalues [OK]
Hint: Diagonal matrix eigenvalues = diagonal elements [OK]
Common Mistakes:
  • Confusing eigenvalues order
  • Expecting eigenvectors instead of eigenvalues
  • Misreading matrix elements
4. What is wrong with this code snippet?
import numpy as np
A = np.array([[1, 2], [3, 4]])
eigenvalues, eigenvectors = np.linalg.eigvals(A)
medium
A. np.linalg.eigvals() returns only eigenvalues, not eigenvectors
B. Matrix A is not square
C. np.linalg.eigvals() requires two arguments
D. The import statement is incorrect

Solution

  1. Step 1: Understand the function np.linalg.eigvals()

    This function returns only eigenvalues, not eigenvectors.
  2. Step 2: Check the assignment in the code

    The code tries to unpack two values, but eigvals() returns only one, causing an error.
  3. Final Answer:

    np.linalg.eigvals() returns only eigenvalues, not eigenvectors -> Option A
  4. Quick Check:

    eigvals() returns one output [OK]
Hint: eigvals() returns only eigenvalues, not vectors [OK]
Common Mistakes:
  • Expecting two outputs from eigvals()
  • Thinking matrix must be non-square
  • Misunderstanding import syntax
5. You have a matrix B = np.array([[1, 0], [0, -3]]). You want to find the eigenvalue with the largest magnitude. Which code snippet correctly finds it?
hard
A. vals, vecs = np.linalg.eig(B) largest = max(vecs)
B. vals = np.linalg.eigvals(B) largest = max(vals)
C. vals = np.linalg.eigvals(B) largest = vals[np.argmax(vals)]
D. vals, vecs = np.linalg.eig(B) largest = vals[np.argmax(np.abs(vals))]

Solution

  1. Step 1: Compute eigenvalues and eigenvectors

    Use np.linalg.eig(B) to get both eigenvalues and eigenvectors.
  2. Step 2: Find eigenvalue with largest magnitude

    Use np.abs(vals) to get absolute values, then np.argmax() to find index of largest magnitude eigenvalue.
  3. Step 3: Select eigenvalue at that index

    Indexing vals with that index gives the eigenvalue with largest magnitude.
  4. Final Answer:

    vals, vecs = np.linalg.eig(B) largest = vals[np.argmax(np.abs(vals))] -> Option D
  5. Quick Check:

    Use abs and argmax on eigenvalues [OK]
Hint: Use np.abs() and np.argmax() on eigenvalues to find largest [OK]
Common Mistakes:
  • Using max() directly without abs()
  • Trying to find max of eigenvectors
  • Using wrong function for eigenvalues