错误复现
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))
element = coo[0, 0]
报错
TypeError: 'coo_matrix' object is not subscriptable
解决办法
element = coo[0, 0]
修改为:
element = coo.toarray()[0, 0]
错因探究
如上图所示,稀疏矩阵coo_matrix不直接支持切片操作。切片操作本质上是根据一系列下标索引来获取元素。所以稀疏矩阵coo_matrix不直接支持根据下标索引来获取元素。