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
Step 1: Understand the purpose of np.linalg.eig()
This function is designed to find eigenvalues and eigenvectors of a square matrix.
Step 2: Recall the output format
It returns two objects: one array with eigenvalues and one matrix with eigenvectors as columns.
Final Answer:
An array of eigenvalues and a matrix of eigenvectors -> Option B
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
Step 1: Recall the correct function and output order
The function np.linalg.eig() returns eigenvalues first, then eigenvectors.
Step 2: Check syntax correctness
eigenvalues, eigenvectors = np.linalg.eig(A) correctly assigns eigenvalues and eigenvectors in order from np.linalg.eig(A).
Final Answer:
eigenvalues, eigenvectors = np.linalg.eig(A) -> Option A
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
Step 1: Identify eigenvalues of a diagonal matrix
For a diagonal matrix, eigenvalues are the diagonal elements: 2 and 3.
Step 2: Check the output of np.linalg.eig(A)[0]
This returns the eigenvalues array, which will be [2. 3.].
Final Answer:
[2. 3.] -> Option C
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
Step 1: Understand the function np.linalg.eigvals()
This function returns only eigenvalues, not eigenvectors.
Step 2: Check the assignment in the code
The code tries to unpack two values, but eigvals() returns only one, causing an error.
Final Answer:
np.linalg.eigvals() returns only eigenvalues, not eigenvectors -> Option A
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
Step 1: Compute eigenvalues and eigenvectors
Use np.linalg.eig(B) to get both eigenvalues and eigenvectors.
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.
Step 3: Select eigenvalue at that index
Indexing vals with that index gives the eigenvalue with largest magnitude.
Final Answer:
vals, vecs = np.linalg.eig(B)
largest = vals[np.argmax(np.abs(vals))] -> Option D
Quick Check:
Use abs and argmax on eigenvalues [OK]
Hint: Use np.abs() and np.argmax() on eigenvalues to find largest [OK]