如何在python中合并两个稀疏coo_matrix矩阵?

问题描述 投票:0回答:2

假设我有两个 coo_matrix (i,j) 值: 垫_1:

 (0, 1)        0.5
 (0, 2)        0.5
 (1, 2)        1.0
 (3, 0)        0.5
 (3, 3)        0.5
 (5, 0)        0.5
 (5, 3)        0.5

mat_2:

 (2, 0)        0.25
 (4, 0)        0.25
 (2, 1)        0.25
 (4, 1)        0.25
 (2, 2)        0.25
 (4, 2)        0.25
 (2, 3)        0.25
 (4, 3)        0.25

我想将它们合并在一起,以便输出如下所示:

 (0, 1)        0.5
 (0, 2)        0.5
 (1, 2)        1.0
 (3, 0)        0.5
 (3, 3)        0.5
 (5, 0)        0.5
 (5, 3)        0.5
 (2, 0)        0.25
 (4, 0)        0.25
 (2, 1)        0.25
 (4, 1)        0.25
 (2, 2)        0.25
 (4, 2)        0.25
 (2, 3)        0.25
 (4, 3)        0.25

我该怎么做?

python numpy scipy sparse-matrix
2个回答
0
投票

由于您要组合的两个稀疏矩阵的列数相同,您可以尝试使用

sparse.vstack
:

sparse.hstack((mat1, mat2))

0
投票

从 mat_1(形状为 6,4 的 coo_matrix)和 mat_2(另一个形状为 5,4 的 coo_matrix)开始。 (这些形状符合所提供的数据。)

首先,您需要调整 mat_2 的大小以匹配 mat_1。然后使用简单的 + 运算符将它们添加在一起。生成的矩阵是 csr 而不是 coo,因此您将其转换回来。

mat_2.resize((6,4))
mat_3 = mat_1 + mat_2
mat_4 = mat_3.tocoo()
© www.soinside.com 2019 - 2024. All rights reserved.