Bird
Raised Fist0
NumPydata~30 mins

np.linalg.eig() for eigenvalues in NumPy - Mini Project: Build & Apply

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
Finding Eigenvalues and Eigenvectors with np.linalg.eig()
📖 Scenario: Imagine you are analyzing a simple system where you want to understand its main directions of change. This is common in physics, engineering, and data science. Eigenvalues and eigenvectors help us find these directions.
🎯 Goal: You will create a matrix, use np.linalg.eig() to find its eigenvalues and eigenvectors, and then display the results.
📋 What You'll Learn
Create a 2x2 numpy array called matrix with values [[4, 2], [1, 3]]
Create a variable called eigenvalues and a variable called eigenvectors to store the results of np.linalg.eig(matrix)
Print the eigenvalues and eigenvectors variables
💡 Why This Matters
🌍 Real World
Eigenvalues and eigenvectors help in physics to understand vibrations, in data science for principal component analysis, and in engineering for system stability.
💼 Career
Many data science and engineering jobs require understanding matrix properties and using eigenvalues for dimensionality reduction and system analysis.
Progress0 / 4 steps
1
Create the matrix
Create a 2x2 numpy array called matrix with these exact values: [[4, 2], [1, 3]]
NumPy
Hint

Use np.array() to create the matrix with the given values.

2
Calculate eigenvalues and eigenvectors
Use np.linalg.eig() on the matrix to get eigenvalues and eigenvectors. Store them in variables called eigenvalues and eigenvectors respectively.
NumPy
Hint

Use eigenvalues, eigenvectors = np.linalg.eig(matrix) to get both results at once.

3
Print eigenvalues
Print the variable eigenvalues to display the eigenvalues of the matrix.
NumPy
Hint

Use print(eigenvalues) to show the eigenvalues.

4
Print eigenvectors
Print the variable eigenvectors to display the eigenvectors of the matrix.
NumPy
Hint

Use print(eigenvectors) to show the eigenvectors.

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