0
0
SciPydata~20 mins

COO format (Coordinate) in SciPy - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
COO Format Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of COO matrix data arrays
Given the following code creating a COO sparse matrix, what will be the output of the data, row, and col arrays?
SciPy
from scipy.sparse import coo_matrix
import numpy as np
row = np.array([0, 3, 1, 0])
col = np.array([0, 3, 1, 2])
data = np.array([4, 5, 7, 9])
coo = coo_matrix((data, (row, col)), shape=(4, 4))
print(coo.data)
print(coo.row)
print(coo.col)
A
[4 9 7 5]
[0 0 1 3]
[0 2 1 3]
B
[9 7 5 4]
[0 1 3 0]
[2 1 3 0]
C
[4 5 7 9]
[0 3 1 0]
[0 3 1 2]
D
[4 7 5 9]
[0 1 3 0]
[0 1 3 2]
Attempts:
2 left
💡 Hint
The COO format stores data in the order you provide the row and column indices.
data_output
intermediate
1:30remaining
Number of non-zero elements in COO matrix
How many non-zero elements does the following COO matrix have?
SciPy
from scipy.sparse import coo_matrix
row = [0, 1, 1, 2, 3]
col = [0, 0, 2, 3, 3]
data = [1, 2, 3, 4, 5]
coo = coo_matrix((data, (row, col)), shape=(4, 4))
print(coo.nnz)
A6
B5
C3
D4
Attempts:
2 left
💡 Hint
nnz means number of stored non-zero elements.
🔧 Debug
advanced
2:00remaining
Identify the error in COO matrix creation
What error will this code raise when creating a COO matrix?
SciPy
from scipy.sparse import coo_matrix
row = [0, 1, 2]
col = [0, 1]
data = [1, 2, 3]
coo = coo_matrix((data, (row, col)), shape=(3, 3))
AIndexError: index out of bounds
BTypeError: data must be a 1-dimensional array
CNo error, matrix created successfully
DValueError: shape mismatch: objects cannot be broadcast to a single shape
Attempts:
2 left
💡 Hint
Check if the lengths of row, col, and data arrays match.
🚀 Application
advanced
1:30remaining
Convert COO matrix to dense and find sum
What is the sum of all elements in the dense matrix converted from this COO matrix?
SciPy
from scipy.sparse import coo_matrix
row = [0, 1, 2, 2]
col = [0, 1, 1, 2]
data = [10, 20, 30, 40]
coo = coo_matrix((data, (row, col)), shape=(3, 3))
dense = coo.toarray()
print(dense.sum())
A100
B90
C80
D120
Attempts:
2 left
💡 Hint
Sum all the data values since zeros do not add.
🧠 Conceptual
expert
2:30remaining
Effect of duplicate entries in COO matrix
If a COO matrix has duplicate entries at the same row and column indices, what happens when converting it to CSR format?
AThe duplicate entries are summed together in the CSR matrix.
BThe duplicate entries cause an error during conversion.
COnly the first duplicate entry is kept; others are discarded.
DThe duplicates remain separate and increase the nnz count.
Attempts:
2 left
💡 Hint
Think about how sparse formats handle duplicates when compressed.