我知道这可能是一个非常广泛的话题,但我想了解更多。我的问题是关于sklearn的coo_matrix。
我从文档中阅读并理解它代表稀疏矩阵的坐标矩阵。此处的“坐标”一词有什么含义?
例如
coo_matrix((1,2))将得到我
array([[0, 0]])
那么在这个例子中坐标甚至意味着什么?还是我们有其他示例将其与其他矩阵区分开?例如csr_matrix,bsr_matrix等。
同样,如果我提出了错误的问题,或者在任何地方都可以找到该问题,请尽可能让我知道或提供链接。
**对于“让我知道”,只需告诉我“您在问一个太简单的问题”或“您的问题可以在其他地方找到,请做一些研究”就可以了,然后我将删除此帖子因为它不相关。
对于“共享链接”,请让我知道在哪里可以学习和了解更多信息。先感谢您。 **
提示:根据某些专家的观点,该帖子被认为是重复的帖子,并且我获得了一些建议,如果其他人发布的答案可能与将来的读者相关,则可以将其保留在此处,因此,我离开它。
答案 0 :(得分:2)
看起来,一个coo矩阵所需的只是一个行列表,一个列列表和一个值(数据)列表(每个列表大小相同)。重要的是它们的大小必须与您遍历每个元素以获取三元组(行索引,col索引,值)的大小相同。这告诉函数在您要制作的矩阵的(行索引,列索引)处放置一个值。我非常确定它称为坐标格式,因为您传递了具有关联值的坐标(带有行和列)。让我们做一个简单的例子。
row = np.array([1,3])
col = np.array([2,0])
data = np.array([5,11])
print(coo_matrix((data, (row, col)), shape=(4, 4)).toarray())
row[0] = 1
和col[0] = 2
,因此我们将看看矩阵中的(1,2)
元素(在python中记住,索引从0开始)。 value[0] = 5
,因此该函数将5作为矩阵中的(1,2)
元素放入。
row[1] = 3
和col[1] = 0
,因此我们将研究矩阵中的(3,0)
元素。 value[1] = 11
,因此该函数将11放入矩阵中的(3,0)
元素。
其余元素(索引为(1,2)
和(3,0)
的元素除外)为0:
输出:
[[ 0 0 0 0]
[ 0 0 5 0]
[ 0 0 0 0]
[11 0 0 0]]