Bird
Raised Fist0
SciPydata~5 mins

Singular Value Decomposition (svd) in SciPy - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is Singular Value Decomposition (SVD)?
SVD is a way to break a matrix into three simpler matrices. It helps us understand the original matrix's structure and is used in data science for tasks like noise reduction and data compression.
Click to reveal answer
beginner
What are the three matrices produced by SVD?
SVD breaks a matrix into U, Σ (Sigma), and V^T. U and V^T are orthogonal matrices, and Σ is a diagonal matrix with singular values.
Click to reveal answer
beginner
How does SVD help in data science?
SVD helps reduce data size by keeping only important parts, removes noise, and finds patterns in data like images or text.
Click to reveal answer
beginner
In scipy, which function is used to perform SVD?
The function scipy.linalg.svd() is used to perform Singular Value Decomposition on a matrix.
Click to reveal answer
beginner
What does the diagonal matrix Σ represent in SVD?
Σ contains singular values that show the importance or strength of each component in the original matrix.
Click to reveal answer
Which of the following is NOT a matrix output from SVD?
AU
BX
CΣ (Sigma)
DV^T
What type of matrix is Σ in SVD?
ADiagonal matrix
BOrthogonal matrix
CIdentity matrix
DZero matrix
Which scipy function performs Singular Value Decomposition?
Ascipy.linalg.svd()
Bscipy.linalg.eig()
Cscipy.linalg.inv()
Dscipy.linalg.qr()
Why is SVD useful in data science?
ATo sort data alphabetically
BTo encrypt data
CTo increase data size
DTo reduce noise and find patterns
What property do U and V^T matrices have in SVD?
AThey are zero matrices
BThey are diagonal
CThey are orthogonal
DThey are identity matrices
Explain the three matrices produced by Singular Value Decomposition and their roles.
Think about how each matrix contributes to reconstructing the original matrix.
You got /5 concepts.
    Describe how Singular Value Decomposition can be used to reduce noise in data.
    Consider which parts of the data carry the most information.
    You got /4 concepts.

      Practice

      (1/5)
      1.

      What does the svd function in scipy.linalg return when applied to a matrix?

      easy
      A. The determinant of the matrix
      B. Only the singular values as a matrix
      C. The inverse of the matrix
      D. Three matrices: U, singular values as a vector, and VT

      Solution

      1. Step 1: Understand the output of SVD

        The Singular Value Decomposition splits a matrix into three parts: U, singular values, and VT.
      2. Step 2: Recall scipy.linalg.svd output

        Scipy's svd returns U (left singular vectors), a vector of singular values, and VT (right singular vectors transposed).
      3. Final Answer:

        Three matrices: U, singular values as a vector, and VT -> Option D
      4. Quick Check:

        SVD output = U, s, VT [OK]
      Hint: Remember SVD splits matrix into U, s, VT [OK]
      Common Mistakes:
      • Thinking svd returns only singular values
      • Confusing VT with V
      • Expecting a single matrix output
      2.

      Which of the following is the correct way to import and use svd from scipy.linalg?

      ???
      easy
      A. import svd from scipy.linalg U, s, VT = svd(matrix)
      B. import scipy.linalg.svd U, s, VT = scipy.linalg.svd(matrix)
      C. from scipy.linalg import svd U, s, VT = svd(matrix)
      D. from scipy import svd U, s, VT = svd(matrix)

      Solution

      1. Step 1: Check correct import syntax

        Correct import for svd is from scipy.linalg import svd.
      2. Step 2: Confirm usage

        Then call svd(matrix) to get U, s, VT.
      3. Final Answer:

        from scipy.linalg import svd\nU, s, VT = svd(matrix) -> Option C
      4. Quick Check:

        Correct import and call = from scipy.linalg import svd U, s, VT = svd(matrix) [OK]
      Hint: Use 'from scipy.linalg import svd' to import [OK]
      Common Mistakes:
      • Using incorrect import syntax
      • Trying to import svd directly from scipy
      • Using 'import svd from' which is invalid
      3.

      Given the code below, what is the shape of U, s, and VT?

      import numpy as np
      from scipy.linalg import svd
      
      matrix = np.array([[1, 2], [3, 4], [5, 6]])
      U, s, VT = svd(matrix)
      medium
      A. U: (3, 3), s: (2,), VT: (2, 2)
      B. U: (3, 2), s: (2,), VT: (2, 2)
      C. U: (2, 2), s: (2,), VT: (3, 3)
      D. U: (3, 3), s: (3,), VT: (2, 2)

      Solution

      1. Step 1: Identify matrix shape

        The matrix is 3 rows by 2 columns (3x2).
      2. Step 2: Recall full SVD shapes

        Full SVD returns U as (m, m), s as (min(m,n),), VT as (n, n). Here m=3, n=2, so U=(3,3), s=(2,), VT=(2,2).
      3. Final Answer:

        U: (3, 3), s: (2,), VT: (2, 2) -> Option A
      4. Quick Check:

        Full SVD shapes = U(m,m), s(min(m,n)), VT(n,n) [OK]
      Hint: Full SVD U shape = (m,m), VT = (n,n), s length = min(m,n) [OK]
      Common Mistakes:
      • Assuming U shape is (m,n) instead of (m,m)
      • Confusing s shape with VT shape
      • Mixing up rows and columns in shapes
      4.

      What is wrong with the following code snippet that tries to compute the SVD of a matrix?

      from scipy.linalg import svd
      
      matrix = [[1, 0], [0, 1]]
      U, s, VT = svd(matrix)
      print(U, s, VT)
      medium
      A. svd function does not return three values
      B. The matrix should be a NumPy array, not a list of lists
      C. The import statement is incorrect
      D. The print statement syntax is wrong

      Solution

      1. Step 1: Check input type for svd

        svd expects a NumPy array or similar numeric array, not a plain Python list.
      2. Step 2: Identify error cause

        Passing a list of lists can cause unexpected behavior or errors; converting to np.array fixes this.
      3. Final Answer:

        The matrix should be a NumPy array, not a list of lists -> Option B
      4. Quick Check:

        Input must be np.array for svd [OK]
      Hint: Always convert input to np.array before svd [OK]
      Common Mistakes:
      • Passing Python lists directly to svd
      • Assuming svd returns a single matrix
      • Incorrect import or print syntax
      5.

      You have a large dataset matrix X of shape (1000, 50). You want to reduce its dimensionality to 10 while keeping most information. Which step using scipy.linalg.svd helps achieve this?

      hard
      A. Compute full SVD, then keep only the first 10 singular values and corresponding vectors
      B. Compute SVD and discard the singular values
      C. Use svd to get U and VT, then multiply all components without truncation
      D. Apply svd only on a 10x10 submatrix of X

      Solution

      1. Step 1: Understand dimensionality reduction with SVD

        Reducing dimensions means keeping top singular values and vectors that capture most variance.
      2. Step 2: Apply truncation after full SVD

        Compute full SVD, then keep first 10 singular values and corresponding columns of U and rows of VT to reduce size.
      3. Final Answer:

        Compute full SVD, then keep only the first 10 singular values and corresponding vectors -> Option A
      4. Quick Check:

        Truncate SVD components to reduce dimensions [OK]
      Hint: Keep top singular values and vectors for reduction [OK]
      Common Mistakes:
      • Discarding singular values loses information
      • Using only a submatrix loses global structure
      • Not truncating leads to no reduction
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard