标签: sparse-matrix

在matlab中乘以两个大矩阵会产生内存不足错误

我有两个大型矩阵需要繁殖:

A x D

其中A = 2358048 x 1 B = 1 x 492020

我知道乘法需要大量的RAM,这就是为什么我在matlab中得到Out of Memory(我在服务器上有90GB的RAM).

有几种方法可以做到这一点.也许分解一些如何并保存一些文件中的碎片并逐步进行乘法运算.然后最后将它们组合在一起?样本matlab代码将是最有价值的.谢谢

matlab matrix out-of-memory sparse-matrix matrix-multiplication

2
推荐指数
1
解决办法
2363
查看次数

稀疏矩阵上的逐元素运算

如果你有一个稀疏矩阵X:

>> print type(X)
<class 'scipy.sparse.csr.csr_matrix'>
Run Code Online (Sandbox Code Playgroud)

...如何将每行中每个元素的平方相加,并将它们保存到列表中?例如:

>>print X.todense()
[[0 2 0 2]
 [0 2 0 1]]
Run Code Online (Sandbox Code Playgroud)

如何将其转换为每行的平方和列表:

[[0²+2²+0²+2²]
 [0²+2²+0²+1²]]
Run Code Online (Sandbox Code Playgroud)

要么: [8, 5]

python numpy scipy sparse-matrix

2
推荐指数
1
解决办法
4096
查看次数

在MATLAB中生成随机加权邻接矩阵

我想在MATLAB中创建一个随机邻接矩阵,使得权重的总和等于边数.最后找到拉普拉斯矩阵

L = diag(sum(A)) - A
Run Code Online (Sandbox Code Playgroud)

然后绘制图形.有没有办法这样做?提前致谢.

random matlab sparse-matrix adjacency-matrix

2
推荐指数
1
解决办法
4464
查看次数

添加到常规numpy ndarray时调用scipy.sparse __add__方法?

我正在计算scipy.sparse矩阵(CSC)和numpy ndarray向量之间的点积:

>>> print type(np_vector), np_vector.shape
<type 'numpy.ndarray'> (200,)
>>> print type(sp_matrix), sparse.isspmatrix(sp_matrix), sp_matrix.shape
<class 'scipy.sparse.csc.csc_matrix'> True (200, 200)
>>> dot_vector = dot(np_vector, sp_matrix)
Run Code Online (Sandbox Code Playgroud)

结果似乎是一个新的ndarray矢量,正如我所料:

>>> print type(dot_vector), dot_vector.shape
<type 'numpy.ndarray'> (200,)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试向该向量添加标量时,我收到异常:

>>> scalar = 3.0
>>> print dot_vector + scalar 
C:\Python27\lib\site-packages\scipy\sparse\compressed.pyc in __add__(self, other)
    173                 return self.copy()
    174             else: # Now we would add this scalar to every element.
--> 175                 raise NotImplementedError('adding a nonzero scalar to a '
    176                                           'sparse matrix is not supported')
    177         elif isspmatrix(other): …
Run Code Online (Sandbox Code Playgroud)

python numpy ipython scipy sparse-matrix

2
推荐指数
1
解决办法
1548
查看次数

Scipy相当于numpy稀疏矩阵的位置

我正在寻找numpy.where与scipy offers(scipy.sparse)的稀疏表示一起使用的等价物.是否有任何东西可以让你处理这些矩阵,就好像你在哪里使用if-then-else语句一样?

UPDATE 更具体:我需要where一个IF-THEN-ELSE vectorialized功能,即在这样的任务,因为这等于K的矩阵A的每个值,放在矩阵B对应的值,否则C.你可以使用类似find来检索满足逻辑条件的那些条目的索引,然后否定它们以找到所有剩余的条目,但对于稀疏矩阵,是不是有更紧凑的方法?

python numpy scipy sparse-matrix

2
推荐指数
1
解决办法
2515
查看次数

具有稀疏矩阵数据和多项式Y的xgboost随机森林

我不确定是否xgboost可以按照我需要的方式(?)组合许多不错的功能,但我要做的是在多类因变量上运行具有稀疏数据预测变量的随机森林.

我知道xgboost可以做其中任何一件事:

bst <- xgboost(data = train$data, label = train$label, max.depth = 4, num_parallel_tree = 1000, subsample = 0.5, colsample_bytree =0.5, nround = 1, objective = "binary:logistic")

bst <- xgboost(data = sparse_matrix, label = output_vector, max.depth = 4, eta = 1, nthread = 2, nround = 10,objective = "binary:logistic")

  • 多项式(多类)因变量模型通过multi:softmaxmulti:softprob

xgboost(data = data, label = multinomial_vector, max.depth = 4, eta = 1, nthread = 2, nround = …

r sparse-matrix random-forest xgboost

2
推荐指数
1
解决办法
2255
查看次数

在数组中获取字典值的向量,python

我试图获得一个特定字典值的向量,这些值在一个numpy数组中.这是数组的样子:

import numpy as np
edge_array = np.array(
    [[1001, 7005, {'lanes': 9, 'length': 0.35, 'type': '99', 'modes': 'cw'}],
     [1001, 8259, {'lanes': 10, 'length': 0.46, 'type': '99', 'modes': 'cw'}],
     [1001, 14007, {'lanes': 7, 'length': 0.49, 'type': '99', 'modes': 'cw'}]])
Run Code Online (Sandbox Code Playgroud)

我对每行(即的前两个值的向量10017005,但我需要用于与相关联的值的另一种载体'lanes'.

到目前为止,这是我的代码:

row_idx = edge_array[:, 0]
col_idx = edge_array[:, 1]
lane_values = edge_array[:, 2['lanes']]
Run Code Online (Sandbox Code Playgroud)

我得到的错误如下:

lane_values = edge_array[:, 2['lanes']]
TypeError: 'int' object has no attribute '__getitem__'
Run Code Online (Sandbox Code Playgroud)

如果您需要进一步澄清,请告诉我,谢谢!

python dictionary numpy sparse-matrix

2
推荐指数
1
解决办法
1088
查看次数

如何在R中打印矩阵并隐藏NA值?

我有一个包含一些NA元素的矩阵(例如mat下面),我想创建一个新函数,用NA隐藏的值打印它(fun如下所示).我怎样才能做到这一点?

mat <- cbind(c(1,2,NA,NA),c(3,3,3,NA),c(NA,4,4,4),c(NA,NA,5,5))
print(mat)

     [,1] [,2] [,3] [,4]
[1,]    1    3   NA   NA
[2,]    2    3    4   NA
[3,]   NA    3    4    5
[4,]   NA   NA    4    5

fun(mat)

     [,1] [,2] [,3] [,4]
[1,]    1    3          
[2,]    2    3    4     
[3,]         3    4    5
[4,]              4    5
Run Code Online (Sandbox Code Playgroud)

r matrix sparse-matrix na

2
推荐指数
1
解决办法
95
查看次数

scipy稀疏矩阵的元素智能exp()

我有一个非常大的稀疏csc_matrix x.我想对它进行elementwise exp().基本上我想要的是得到与我一样的结果numpy.exp(x.toarray()).但我不能那样做(我的记忆不允许我将稀疏矩阵转换成数组).有什么出路吗?提前致谢!

scipy sparse-matrix exponential

2
推荐指数
1
解决办法
784
查看次数

numpy,用来自其他矩阵的行填充稀疏矩阵

我很难弄清楚什么是最有效的方法来执行以下操作:

import numpy as np

M = 10
K = 10
ind = np.array([0,1,0,1,0,0,0,1,0,0])
full = np.random.rand(sum(ind),K)
output = np.zeros((M,K))
output[1,:] = full[0,:]
output[3,:] = full[1,:]
output[7,:] = full[2,:]
Run Code Online (Sandbox Code Playgroud)

我想构建输出,它是一个稀疏矩阵,其行以密集矩阵(完整)给出,行索引通过二进制矢量指定。理想情况下,我想避免循环。那可能吗?如果没有,我正在寻找最有效的方法。

我需要多次执行此操作。ind和full会不断变化,因此,我仅提供了一些示例值进行说明。我希望ind相当稀疏(最多10%),M和K都很大(10e2-10e3)。最终,我可能需要在pytorch中执行此操作,但是对于numpy来说,一些不错的过程已经使我步入正轨。

如果您对此问题有一个或多个适当的类别,也请帮助我找到该问题的更适当的标题。

非常感谢,马克斯

python indexing numpy sparse-matrix slice

2
推荐指数
1
解决办法
390
查看次数