假设我有两个 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
我该怎么做?
由于您要组合的两个稀疏矩阵的列数相同,您可以尝试使用
sparse.vstack
:
sparse.hstack((mat1, mat2))
从 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()