【发布时间】:2013-01-10 04:28:32
【问题描述】:
我正在尝试将一个 numpy ndarray 添加到一个稀疏矩阵中,但我没有成功。我想知道是否有办法做到这一点,而无需将稀疏矩阵转换为密集矩阵。
另一个问题是是否可以添加两个稀疏矩阵。
x = np.dot(aSparseMatrix, weights)
y = x + bias
其中 x 是我的稀疏矩阵,bias 是 numpy 数组。我目前得到的错误是:
NotImplementedError: adding a scalar to a CSC or CSR matrix is not supported
aSparseMatrix.shape (1, 10063)
weights.shape (10063L, 2L)
bias.shape (2L,)
【问题讨论】:
-
将密集矩阵添加到稀疏矩阵不会有效地使其密集吗?
-
没有。它显然没有。
-
我的意思是我不明白在将它们相加之前不对备用矩阵执行
x.todense()有什么好处,因为结果不会有很多非零项。或者,如果是这样,您可以在添加之前使用csc_matrix(bias)将密集矩阵转换为稀疏格式。尽管如此,看起来bias不是ndarray而是一个标量,您在添加它们之前尝试过np.array(bias)吗? -
我无法将稀疏矩阵变成密集矩阵,因为它太大以至于密集形式无法放入内存。我也尝试过将偏差转换为稀疏矩阵,但它仍然无法添加它们并且 np.array(bias) 不起作用。
标签: python numpy sparse-matrix