Coo_matrix和其他矩阵示例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Coo_matrix和其他矩阵示例相关的知识,希望对你有一定的参考价值。

我理解这可能是一个非常广泛的话题,但我想了解更多。我的问题是关于来自sklearn的coo_matrix。

我从文档中读到并理解它表示稀疏矩阵的坐标矩阵。这里的“坐标”这个词有什么意义吗?

举个例子,

coo_matrix((1,2))会得到我

array([[0, 0]])

那么在这个例子中,坐标甚至意味着什么呢?或者我们还有其他例子来区别于其他矩阵吗?如csr_matrix,bsr_matrix等。

同样,如果我问错了问题或者这个问题可以在任何地方找到,请尽可能让我知道或提供链接。

**对于“让我知道”,只要告诉我“你问一个太简单的问题”或“你的问题可以在其他地方找到,做一些研究”应该是好的然后我将删除这篇文章,因为它是不相关。

对于“分享链接”,请让我知道我可以在哪里学习并了解更多相关信息。先感谢您。 **

提示:根据一些专家的帖子被认为是一个重复的帖子,我已经获得了一些建议,如果其他人发布的答案可能与未来的读者有关,我可以留在这里,因此,我离开了。

答案

看起来你需要的一个铜矩阵是行列表,列列表和值(数据)列表(每个列表大小相同)。重要的是它们的大小与通过每个元素获得三元组(行索引,col索引,值)的大小相同。这告诉函数将值放在您正在生成的矩阵的(行索引,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] = 1col[0] = 2,因此我们将查看矩阵中的(1,2)元素(记住在python中,索引从0开始)。 value[0] = 5,所以函数将5和(1,2)元素放在矩阵中。

查看每个列表的第二个元素:

row[1] = 3col[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]]

以上是关于Coo_matrix和其他矩阵示例的主要内容,如果未能解决你的问题,请参考以下文章

scipy常见数据结构:coo_matrix、csc_matrix与csr_matrix

Python的稀疏矩阵和参数保存 save/load

使用CUSP打印矩阵的csr格式

深度学习中使用稀疏矩阵

深度学习中使用稀疏矩阵

python系列26:numpy稀疏矩阵笔记