标签: sparse-matrix

如何检查块是否存在于稀疏文件中(对于简单的写时复制)?

如何获取稀疏块大小并检查Linux中reiserfs/ext3中稀疏文件中给定偏移量处是否存在数据?

我想用它来实现使用FUSE的简单的copy-on-write块设备.

或者我最好将位图保存在单独的文件中?

linux filesystems copy-on-write sparse-matrix

6
推荐指数
1
解决办法
2011
查看次数

python中的稀疏矩阵svd

有谁知道如何在python中的稀疏矩阵上执行svd操作?似乎scipy.sparse.linalg中没有提供此类功能.

python sparse-matrix svd

6
推荐指数
1
解决办法
8023
查看次数

在稀疏矩阵上执行外积的总和

我正在尝试使用scipy的稀疏包来实现以下等式:

W = x[:,1] * y[:,1].T + x[:,2] * y[:,2].T + ...
Run Code Online (Sandbox Code Playgroud)

其中x和y是nxm csc_matrix.基本上我试图将x的每个col乘以y的每个col并将得到的nxn矩阵求和.然后我想制作所有非零元素1.

这是我目前的实施:

    c = sparse.csc_matrix((n, n))
    for i in xrange(0,m):
        tmp = bam.id2sym_thal[:,i] * bam.id2sym_cort[:,i].T
        minimum(tmp.data,ones_like(tmp.data),tmp.data)
        maximum(tmp.data,ones_like(tmp.data),tmp.data)

        c = c + tmp
Run Code Online (Sandbox Code Playgroud)

此实现具有以下问题:

  1. 内存使用似乎爆炸了.根据我的理解,内存应该只会随着c变稀疏而增加,但我看到循环开始吞噬> 20GB的内存,其中= 10,000,m = 100,000(x和y的每一行只有大约60个非零元素).

  2. 我正在使用一个效率不高的python循环.

我的问题:有更好的方法吗?控制内存使用量是我首先关注的问题,但要让它更快更好!

谢谢!

python numpy matrix scipy sparse-matrix

6
推荐指数
1
解决办法
1341
查看次数

如何在大稀疏矩阵中找到非零元素的索引?

我有两个sq矩阵(a,b)的大小为100000 X 100000.我必须区分这两个矩阵(c = ab).结果矩阵'c'是稀疏矩阵.我想找到所有非零元素的索引.我必须多次做这个操作(> 100).

最简单的方法是使用两个for循环.但这是计算密集型的.你能告诉我任何算法或包/库最好在R/python/c中尽快做到这一点吗?

python algorithm r sparse-matrix indices

6
推荐指数
1
解决办法
5211
查看次数

在scipy中导入模块有什么问题,这是一个错误吗?

好吧,我不认为,我可以用文字解释这个问题所以,这里是ipython会话的片段,我导入scipy,以构建一个稀疏矩阵.

In [1]: import scipy as sp

In [2]: a = sp.sparse.lil_matrix((5,5))
        ---------------------------------------------------------------------------
        AttributeError                            Traceback (most recent call last)
       /home/liveuser/<ipython-input-2-b5a55fc2d0ac> in <module>()
        ----> 1 a = sp.sparse.lil_matrix((5,5))

        AttributeError: 'module' object has no attribute 'sparse'

In [3]: import scipy.sparse as spar

In [4]: ax = spar.lil_matrix((5,5))

In [5]: a = sp.sparse.lil_matrix((5,5)) # you are kidding me?

In [6]: a
Out[6]: 
       <5x5 sparse matrix of type '<type 'numpy.float64'>'
       with 0 stored elements in LInked List format>

In [7]: ax
Out[7]: 
       <5x5 sparse …
Run Code Online (Sandbox Code Playgroud)

python scipy sparse-matrix

6
推荐指数
1
解决办法
1万
查看次数

处理kNN中的不完整数据(数据稀疏性)

我正在尝试使用knn创建一个简单的推荐系统.

可以说我有一张桌子:

User | Book1 | Book2 | Book3 | Book4 | Book5 | Book6 | Book7 |
1    | 5     | ?     | 3     | ?     | 4     | 3     | 2     |
2    | 3     | 4     | ?     | 2     | 3     | 4     | 2     |
3    | 4     | 2     | 1     | ?     | ?     | 3     | 3     |
4    | 2     | 5     | 3     | ?     | 4     | 1     | …
Run Code Online (Sandbox Code Playgroud)

algorithm classification machine-learning sparse-matrix knn

6
推荐指数
1
解决办法
1709
查看次数

当A和B都是大矩阵时,在MATLAB中用AX = B求解X的有效方法

我有这个问题,这需要解决XAX=B.A是15000 x 15000的顺序,是稀疏和对称的.B是15000 X 7500并且不稀疏.解决X的最快方法是什么?

我可以想到两种方式.

  1. 最简单的方式, X = A\B
  2. 使用for循环,

    invA = A\speye(size(A))
    for i = 1:size(B,2)
        X(:,i) = invA*B(:,i);
    end
    
    Run Code Online (Sandbox Code Playgroud)

有没有比上面两个更好的方法?如果没有,我提到的两者之间哪一个最好?

matlab linear-algebra sparse-matrix matrix-inverse factorization

6
推荐指数
1
解决办法
8551
查看次数

MATLAB,如何在不超出内存约束的情况下计算大坐标集之间的距离?

(使用MATLAB)我有一个大的坐标矩阵和一个大的稀疏邻接矩阵,其坐标相互连接.我曾经问过SO,如何在这个SO问题中有效地计算这些距离,但我现在遇到了内存问题,这是一个更严重的问题.

我使用这个MATLAB函数来计算距离矩阵,Dists = pdist2(fruchterman_graph(:,:),fruchterman_graph(:,:),'euclidean');但它在速度和最终内存的大型网络上都失败了.

这是仅在小图表(不是数十万)上运行的代码:

coordinate = kamada_graph;
    [n, d] = size(kamada_graph);
    assert(d == 2);
    resi = sparse(adj*  spdiags((1:n)',0,n,n));
    resj = sparse(spdiags((1:n)',0,n,n) * adj);
    res = sparse(n,n);
    f = find(adj);  
    res(f) = sqrt((coordinate(resi(f), 1) - coordinate(resj(f), 1)) .^ 2 +...
                          (coordinate(resi(f), 2) - coordinate(resj(f), 2)) .^ 2);
Run Code Online (Sandbox Code Playgroud)

这在图上创建

??? 使用==>发现错误Matrix太大而无法返回线性索引.
使用[i,j] = find(S)用于稀疏矩阵.
在==> modularize_graphs时出错49 [f] = find(adj);

我更改了被称为的行:

[i,j] = find(ajd);    
res(i,j) = sqrt((coordinate(resi(i,j), 1) …
Run Code Online (Sandbox Code Playgroud)

math matlab matrix sparse-matrix coordinates

6
推荐指数
1
解决办法
1267
查看次数

如何使用RowMatrix.columnSimilarities的输出

我需要计算一行的列之间的相似性,并尝试使用columnsimilarities()方法来获得结果.

public static void main(String[] args) {

    SparkConf sparkConf = new SparkConf().setAppName("CollarberativeFilter").setMaster("local");
        JavaSparkContext sc = new JavaSparkContext(sparkConf);
        SparkSession spark = SparkSession.builder().appName("CollarberativeFilter").getOrCreate();
        double[][] array = {{5,0,5}, {0,10,0}, {5,0,5}};
        LinkedList<Vector> rowsList = new LinkedList<Vector>();
        for (int i = 0; i < array.length; i++) {
          Vector currentRow = Vectors.dense(array[i]);
          rowsList.add(currentRow);
        }
        JavaRDD<Vector> rows = sc.parallelize(rowsList);

        // Create a RowMatrix from JavaRDD<Vector>.
        RowMatrix mat = new RowMatrix(rows.rdd());
         CoordinateMatrix simsPerfect = mat.columnSimilarities();
         RowMatrix mat2 = simsPerfect.toRowMatrix();
         List<Vector> vs2 = mat2.rows().toJavaRDD().collect();
         List<Vector> vs = mat.rows().toJavaRDD().collect();
         System.out.println("mat"); …
Run Code Online (Sandbox Code Playgroud)

java scala matrix sparse-matrix apache-spark

6
推荐指数
0
解决办法
1590
查看次数

sparse.model.matrix创建出错

我正在尝试用一个公式创建一个sparse.model.matrix(从Matrix包中),其中两个因素之间存在相互作用.如果我的输入数据有多行,这很好,但只要我有一行,我就会得到错误:

Error in model.spmatrix(t, data, transpose = transpose, drop.unused.levels = drop.unused.levels, : cannot get a slot ("Dim") from an object of type "double"

例如:这不起作用:

f<-(mpg~as.factor(cyl)*as.factor(hp))

y<-mtcars
y$cyl<-as.factor(y$cyl)
y$hp<-as.factor(y$hp)

x<-y[1,]

myMatrix<-Matrix::sparse.model.matrix(f,x)
Run Code Online (Sandbox Code Playgroud)

但是,在两行中复制x会导致错误消失:

x<-rbind(x,x)
myMatrix<-Matrix::sparse.model.matrix(f,x)
Run Code Online (Sandbox Code Playgroud)

我已经跟踪了错误

Matrix:::Csparse_vertcat/ Matrix:::Csparse_horzcatwithin Matrix:::model.spmatrix但是我无法弄清楚这个用C编写的函数正在尝试做什么.有任何想法吗?请注意,只有在我可以确定此错误时,才会在处理两个因素之间的交互的矩阵创建时发生.

r matrix sparse-matrix

6
推荐指数
0
解决办法
422
查看次数