相关疑难解决方法(0)

是否有一种连接scipy.sparse矩阵的有效方法?

我正在使用一些相当大的稀疏矩阵(从5000x5000到20000x20000)并且需要找到一种以灵活方式连接矩阵的有效方法,以便从不同的部分构造随机矩阵.

现在我使用以下方法连接四个矩阵,但它的效率非常低.有没有更好的方法来做到这一点,不涉及转换为密集矩阵?

rmat[0:m1.shape[0],0:m1.shape[1]] = m1
rmat[m1.shape[0]:rmat.shape[0],m1.shape[1]:rmat.shape[1]] = m2
rmat[0:m1.shape[0],m1.shape[1]:rmat.shape[1]] = bridge
rmat[m1.shape[0]:rmat.shape[0],0:m1.shape[1]] = bridge.transpose()
Run Code Online (Sandbox Code Playgroud)

python concatenation scipy sparse-matrix

34
推荐指数
4
解决办法
2万
查看次数

将列添加到稀疏矩阵

当我执行以下代码时,我得到一个备用矩阵:

import numpy as np
from scipy.sparse import csr_matrix

row = np.array([0, 0, 1, 2, 2, 2])
col = np.array([0, 2, 2, 0, 1, 2])
data = np.array([1, 2, 3, 4, 5, 6])
sp = csr_matrix((data, (row, col)), shape=(3, 3))
print(sp)

  (0, 0)        1
  (0, 2)        2
  (1, 2)        3
  (2, 0)        4
  (2, 1)        5
  (2, 2)        6
Run Code Online (Sandbox Code Playgroud)

我想在这个稀疏矩阵中添加另一列,因此输出为:

  (0, 0)        1
  (0, 2)        2
  (0, 3)        7
  (1, 2)        3
  (1, 3)        7
  (2, 0)        4
  (2, 1) …
Run Code Online (Sandbox Code Playgroud)

python numpy scipy sparse-matrix python-3.x

9
推荐指数
1
解决办法
7785
查看次数

堆叠两个不同维度的稀疏矩阵

sklearn HashVectorizer我有两个稀疏矩阵(由两组特征创建- 每组对应一个特征)。我想将它们连接起来以便稍后使用它们进行聚类。但是,我面临尺寸问题,因为两个矩阵没有相同的行尺寸。

这是一个例子:

Xa = [-0.57735027 -0.57735027  0.57735027 -0.57735027 -0.57735027  0.57735027
  0.5         0.5        -0.5         0.5         0.5        -0.5         0.5
  0.5        -0.5         0.5        -0.5         0.5         0.5        -0.5
  0.5         0.5       ]

Xb = [-0.57735027 -0.57735027  0.57735027 -0.57735027  0.57735027  0.57735027
 -0.5         0.5         0.5         0.5        -0.5        -0.5         0.5
 -0.5        -0.5        -0.5         0.5         0.5       ]
Run Code Online (Sandbox Code Playgroud)

Xa都是Xb类型<class 'scipy.sparse.csr.csr_matrix'>。形状是Xa.shape = (6, 1048576) Xb.shape = (5, 1048576). 我得到的错误是(我现在知道为什么会发生):

    X = hstack((Xa, Xb))
  File "/usr/local/lib/python2.7/site-packages/scipy/sparse/construct.py", line 464, in hstack
    return …
Run Code Online (Sandbox Code Playgroud)

python scipy sparse-matrix scikit-learn

5
推荐指数
1
解决办法
2322
查看次数