Bird
Raised Fist0
NumPydata~30 mins

np.linalg.inv() for matrix inverse 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
Calculate Matrix Inverse Using np.linalg.inv()
📖 Scenario: Imagine you are working with a small business that needs to solve a system of linear equations to optimize their resources. One way to do this is by finding the inverse of a matrix representing their data.
🎯 Goal: You will create a matrix using NumPy, set up a configuration variable, calculate the inverse of the matrix using np.linalg.inv(), and then print the result.
📋 What You'll Learn
Create a 2x2 NumPy array called matrix with values [[4, 7], [2, 6]]
Create a variable called identity_check to store the product of matrix and its inverse
Use np.linalg.inv() to calculate the inverse of matrix and store it in inverse_matrix
Print the inverse_matrix and identity_check to verify the inverse calculation
💡 Why This Matters
🌍 Real World
Matrix inversion is used in many fields like engineering, physics, computer graphics, and economics to solve systems of equations and model real-world problems.
💼 Career
Understanding matrix operations and using NumPy for linear algebra is essential for data scientists, machine learning engineers, and researchers working with numerical data.
Progress0 / 4 steps
1
Create the matrix
Create a 2x2 NumPy array called matrix with the exact values [[4, 7], [2, 6]].
NumPy
Hint

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

2
Set up identity check variable
Create a variable called identity_check and set it to None for now. This will later store the product of the matrix and its inverse.
NumPy
Hint

Initialize identity_check with None as a placeholder.

3
Calculate the inverse matrix
Use np.linalg.inv() to calculate the inverse of matrix and store it in a variable called inverse_matrix. Then calculate the product of matrix and inverse_matrix and store it in identity_check.
NumPy
Hint

Use np.linalg.inv(matrix) to get the inverse. Use np.dot() to multiply matrices.

4
Print the inverse and identity check
Print the variables inverse_matrix and identity_check to see the inverse matrix and verify the product is close to the identity matrix.
NumPy
Hint

Use two print() statements, one for inverse_matrix and one for identity_check.

Practice

(1/5)
1. What does the function np.linalg.inv() do in numpy?
easy
A. It calculates the inverse of a square matrix.
B. It computes the determinant of a matrix.
C. It transposes a matrix.
D. It multiplies two matrices.

Solution

  1. Step 1: Understand the function purpose

    np.linalg.inv() is designed to find the inverse of a matrix, which is a matrix that when multiplied with the original gives the identity matrix.
  2. Step 2: Differentiate from other matrix operations

    Calculating determinant, transpose, or multiplication are different functions in numpy, not np.linalg.inv().
  3. Final Answer:

    It calculates the inverse of a square matrix. -> Option A
  4. Quick Check:

    np.linalg.inv() = inverse matrix [OK]
Hint: Inverse matrix means undo multiplication [OK]
Common Mistakes:
  • Confusing inverse with transpose
  • Thinking it calculates determinant
  • Assuming it multiplies matrices
2. Which of the following is the correct syntax to find the inverse of a matrix A using numpy?
easy
A. np.inv(A)
B. np.linalg.inverse(A)
C. np.linalg.inv(A)
D. np.inverse(A)

Solution

  1. Step 1: Recall numpy linear algebra module

    The inverse function is inside the linalg module of numpy, so it must be called as np.linalg.inv().
  2. Step 2: Check function names

    Functions like np.inv(), np.inverse(), or np.linalg.inverse() do not exist in numpy.
  3. Final Answer:

    np.linalg.inv(A) -> Option C
  4. Quick Check:

    Correct syntax = np.linalg.inv(A) [OK]
Hint: Use np.linalg.inv() for matrix inverse [OK]
Common Mistakes:
  • Omitting 'linalg' module
  • Using wrong function names
  • Confusing with np.inverse()
3. You have a matrix C = np.array([[2, 3], [1, 4]]). You want to verify that np.linalg.inv(C) is correct by multiplying C with its inverse. What should the result be?
easy
A. An identity matrix of the same size as C.
B. The original matrix C itself.
C. A zero matrix of the same size as C.
D. A matrix with all elements equal to 1.

Solution

  1. Step 1: Recall property of inverse matrices

    Multiplying a matrix by its inverse results in the identity matrix, which has 1s on the diagonal and 0s elsewhere.
  2. Step 2: Apply to matrix C

    So, C @ np.linalg.inv(C) should produce the identity matrix of size 2x2.
  3. Final Answer:

    An identity matrix of the same size as C. -> Option A
  4. Quick Check:

    Matrix x inverse = identity matrix [OK]
Hint: Matrix times inverse equals identity [OK]
Common Mistakes:
  • Expecting zero matrix instead
  • Confusing with original matrix
  • Thinking result is all ones
4. What is the output of the following code?
import numpy as np
A = np.array([[1, 2], [3, 4]])
inv_A = np.linalg.inv(A)
print(np.round(inv_A, 2))
medium
A. [[ 4. -2. ] [-3. 1.5]]
B. [[ 1.5 -0.5 ] [-2. 1. ]]
C. [[-2. 1. ] [ 1.5 -0.5]]
D. [[ 0.5 -0.25] [-0.75 0.25]]

Solution

  1. Step 1: Calculate determinant of A

    Determinant = (1*4) - (2*3) = 4 - 6 = -2.
  2. Step 2: Compute inverse using formula

    Inverse = (1/det) * [[4, -2], [-3, 1]] = (-1/2) * [[4, -2], [-3, 1]] = [[-2, 1], [1.5, -0.5]].
  3. Step 3: Check numpy output

    Numpy returns approximately [[-2., 1.], [1.5, -0.5]]. np.round(inv_A, 2) prints as [[-2. 1. ] [ 1.5 -0.5]], matching [[-2. 1. ] [ 1.5 -0.5]].
  4. Final Answer:

    [[ 0.5 -0.25] [-0.75 0.25]] -> Option D
  5. Quick Check:

    np.linalg.inv(A) rounded = [[ 0.5 -0.25] [-0.75 0.25]] [OK]
Hint: Inverse = adjoint / determinant [OK]
Common Mistakes:
  • Confusing determinant sign
  • Not rounding output
  • Mixing up matrix elements
5. What is the error in the following code snippet?
import numpy as np
B = np.array([[1, 2, 3], [4, 5, 6]])
inv_B = np.linalg.inv(B)
print(inv_B)
medium
A. TypeError because np.linalg.inv() expects a list.
B. ValueError because B is not a square matrix.
C. SyntaxError due to missing parentheses.
D. No error; code runs fine.

Solution

  1. Step 1: Check matrix shape

    Matrix B has shape (2, 3), which is not square (rows != columns).
  2. Step 2: Understand np.linalg.inv() requirements

    np.linalg.inv() requires a square matrix to compute the inverse. Non-square matrices cannot have inverses.
  3. Final Answer:

    ValueError because B is not a square matrix. -> Option B
  4. Quick Check:

    Non-square matrix = ValueError [OK]
Hint: Inverse only for square matrices [OK]
Common Mistakes:
  • Trying inverse on non-square matrix
  • Confusing error type
  • Assuming code runs without error