Bird
Raised Fist0
NumPydata~10 mins

np.linalg.inv() for matrix inverse in NumPy - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to import the numpy library with the common alias.

NumPy
import [1] as np
Drag options to blanks, or click blank then click option'
Anumpy
Bpandas
Cmatplotlib
Dscipy
Attempts:
3 left
💡 Hint
Common Mistakes
Importing the wrong library like pandas or matplotlib.
Not using the alias np.
2fill in blank
medium

Complete the code to create a 2x2 numpy array named matrix.

NumPy
matrix = np.array([1])
Drag options to blanks, or click blank then click option'
A[[1, 2, 3], [4, 5, 6]]
B[1, 2, 3, 4]
C[[1, 2], [3, 4]]
D[[1, 2], 3, 4]
Attempts:
3 left
💡 Hint
Common Mistakes
Using a flat list instead of nested lists.
Creating a matrix with wrong dimensions.
3fill in blank
hard

Fix the error in the code to compute the inverse of the matrix.

NumPy
inverse = np.linalg.[1](matrix)
Drag options to blanks, or click blank then click option'
Aeig
Bdet
Csolve
Dinv
Attempts:
3 left
💡 Hint
Common Mistakes
Using det which computes determinant, not inverse.
Using solve which solves linear systems.
4fill in blank
hard

Fill both blanks to create a dictionary with keys as matrix elements and values as their inverses.

NumPy
inverse_dict = {element: [1] for row in matrix for element in row if element [2] 0}
Drag options to blanks, or click blank then click option'
A1/element
Belement
C==
D!=
Attempts:
3 left
💡 Hint
Common Mistakes
Using equality check instead of inequality in the condition.
Not handling zero elements causing division by zero.
5fill in blank
hard

Fill all three blanks to compute the inverse matrix and print it.

NumPy
import numpy as np
matrix = np.array([1])
inverse = np.linalg.[2](matrix)
print([3])
Drag options to blanks, or click blank then click option'
A[[2, 0], [0, 2]]
Binv
Cinverse
D[[1, 2], [3, 4]]
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong matrix shape.
Calling a wrong function instead of inv.
Printing the original matrix instead of the inverse.

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