A sparse matrix is a matrix mostly filled with zeros. It saves memory by storing only the non-zero values and their positions.
Click to reveal answer
beginner
Name two common formats for storing sparse matrices in SciPy.
Two common formats are CSR (Compressed Sparse Row) and CSC (Compressed Sparse Column). They store data efficiently for different operations.
Click to reveal answer
beginner
How do you convert a dense NumPy array to a sparse CSR matrix in SciPy?
Use `scipy.sparse.csr_matrix(your_dense_array)` to convert a dense array to a CSR sparse matrix.
Click to reveal answer
intermediate
What is the advantage of using sparse matrix multiplication over dense matrix multiplication?
Sparse matrix multiplication is faster and uses less memory because it only processes non-zero elements, unlike dense multiplication which processes all elements.
Click to reveal answer
beginner
How can you find the number of non-zero elements in a sparse matrix?
Use the `.nnz` attribute of a sparse matrix to get the count of non-zero elements.
Click to reveal answer
Which SciPy sparse matrix format is best for fast row slicing?
ALIL (List of Lists)
BCSC (Compressed Sparse Column)
CCSR (Compressed Sparse Row)
DDOK (Dictionary of Keys)
✗ Incorrect
CSR format is optimized for fast row slicing and matrix-vector products.
What does the `.tocsc()` method do on a sparse matrix?
AConverts the matrix to CSC format
BConverts the matrix to CSR format
CConverts the matrix to dense format
DReturns the transpose of the matrix
✗ Incorrect
The `.tocsc()` method converts a sparse matrix to Compressed Sparse Column format.
How do you create a sparse identity matrix of size 4x4 in SciPy?
Ascipy.sparse.identity(4)
BAll of the above
Cscipy.sparse.eye(4)
Dscipy.sparse.diags([1,1,1,1])
✗ Incorrect
All these methods create a sparse identity matrix in SciPy.
Which attribute gives the number of non-zero elements in a sparse matrix?
A.count_nonzero()
B.shape
C.size
D.nnz
✗ Incorrect
The `.nnz` attribute returns the count of non-zero elements.
Why use sparse matrices instead of dense matrices?
ATo save memory and speed up calculations when many elements are zero
BTo make matrices look nicer
CBecause dense matrices are deprecated
DTo increase matrix size
✗ Incorrect
Sparse matrices save memory and speed up calculations when most elements are zero.
Explain what a sparse matrix is and why it is useful in data science.
Think about storing mostly zeros efficiently.
You got /3 concepts.
Describe how to convert a dense matrix to a sparse matrix and perform multiplication using SciPy.
Use SciPy functions and explain benefits.
You got /3 concepts.
Practice
(1/5)
1. What is the main advantage of using a sparse matrix in data science?
easy
A. It duplicates all elements to increase accuracy.
B. It automatically sorts data in ascending order.
C. It converts data into a dense format for faster processing.
D. It saves memory by storing only non-zero elements.
Solution
Step 1: Understand sparse matrix storage
Sparse matrices store only non-zero values to save memory space compared to dense matrices.
Step 2: Compare options
Only It saves memory by storing only non-zero elements. correctly describes this key advantage. Other options describe unrelated or incorrect features.
Final Answer:
It saves memory by storing only non-zero elements. -> Option D
Quick Check:
Sparse matrix = memory saving [OK]
Hint: Sparse means store only non-zero values to save memory [OK]
Common Mistakes:
Thinking sparse matrices sort data
Confusing sparse with dense matrix operations
Assuming sparse matrices duplicate data
2. Which of the following is the correct way to create a CSR sparse matrix from a dense NumPy array arr?
easy
A. csr = scipy.sparse.csr(arr)
B. csr = scipy.sparse.csr_matrix(arr)
C. csr = scipy.sparse.array(arr)
D. csr = scipy.sparse.dense_matrix(arr)
Solution
Step 1: Recall CSR matrix creation syntax
The correct function to create a CSR sparse matrix is csr_matrix() from scipy.sparse.
Step 2: Check options
Only csr = scipy.sparse.csr_matrix(arr) uses the correct function name and syntax. Others are invalid or do not exist.
Final Answer:
csr = scipy.sparse.csr_matrix(arr) -> Option B
Quick Check:
Use csr_matrix() to create CSR sparse matrix [OK]
Hint: Use csr_matrix() to create CSR sparse matrix from array [OK]
Common Mistakes:
Using non-existent functions like dense_matrix or csr
Confusing array() with csr_matrix()
Missing scipy.sparse prefix
3. What will be the output of the following code?
import numpy as np
from scipy.sparse import csr_matrix
arr = np.array([[0, 1], [2, 0]])
sparse_mat = csr_matrix(arr)
result = sparse_mat.dot(np.array([1, 2]))
print(result.toarray())
medium
A. [[2]
[2]]
B. [[2 4]
[1 2]]
C. [[2 0]
[0 1]]
D. [[2]
[1]]
Solution
Step 1: Understand matrix and vector multiplication
The sparse matrix is [[0,1],[2,0]]. Multiplying by vector [1,2] means: Row 1: 0*1 + 1*2 = 2 Row 2: 2*1 + 0*2 = 2
Step 2: Check the printed output
The result is a 2x1 matrix with values [[2],[2]]. But the code prints result.toarray(), which shows a 2D array. So output is: [[2] [2]]
Final Answer:
[[2]
[2]] -> Option A
Quick Check:
Dot product result = [[2],[2]] [OK]
Hint: Multiply rows by vector elements and sum for dot product [OK]
Common Mistakes:
Mixing element-wise and dot product multiplication
Confusing shape of output array
Incorrectly summing elements
4. The following code throws an error. What is the most likely cause?
from scipy.sparse import csr_matrix
mat1 = csr_matrix([[1, 0], [0, 2]])
mat2 = csr_matrix([[3, 4]])
result = mat1 + mat2
medium
A. Shapes of mat1 and mat2 do not match for addition.
B. csr_matrix cannot be added using + operator.
C. mat2 must be converted to dense before addition.
D. mat1 contains zeros which cause errors in addition.
Solution
Step 1: Check shapes of matrices
mat1 shape is (2,2), mat2 shape is (1,2). Addition requires same shape.
Step 2: Understand addition rules for sparse matrices
Adding matrices with different shapes causes a ValueError. The + operator works fine if shapes match.
Final Answer:
Shapes of mat1 and mat2 do not match for addition. -> Option A
Quick Check:
Matrix addition requires matching shapes [OK]
Hint: Check matrix shapes before adding sparse matrices [OK]
Common Mistakes:
Assuming + operator is invalid for sparse matrices
Ignoring shape mismatch errors
Thinking zeros cause addition errors
5. You have two CSR sparse matrices A and B representing user-item ratings. You want to compute the element-wise product to find items rated by both users. Which method is the most efficient and correct way to do this?
hard
A. Convert both to dense arrays, multiply, then convert back to sparse.
B. Use A.dot(B) for element-wise multiplication.
C. Use A.multiply(B) to get element-wise multiplication.
For sparse matrices, multiply() performs element-wise multiplication efficiently without converting to dense.
Step 2: Evaluate other options
dot() is matrix multiplication, not element-wise. Converting to dense wastes memory. Addition and subtracting zeros is incorrect for element-wise product.
Final Answer:
Use A.multiply(B) to get element-wise multiplication. -> Option C