标签: sparse-matrix

csv到python中的稀疏矩阵

我有一个很大的csv文件,它列出了图中节点之间的连接.例:

0001,95784
0001,98743
0002,00082
0002,00091

所以这意味着节点id 0001连接到节点95784和98743,依此类推.我需要把它读成numpy中的稀疏矩阵.我怎样才能做到这一点?我是python的新手,所以这方面的教程也会有所帮助.

python sparse-matrix data-structures

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

scipy.sparse默认值

稀疏矩阵格式(dok)假设不在字典中的键的值等于零.有没有办法让它使用除零以外的默认值?

还有,有办法计算稀疏矩阵的日志(类似于常规numpy矩阵中的np.log)

python scipy sparse-matrix

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

在openCV中执行SparseMat(稀疏矩阵)操作

我需要在OpenCV中对稀疏矩阵SparseMat进行矩阵运算(主要是乘法和逆运算).
我注意到你只能迭代并向SparseMat插入值.
我可以使用外部代码吗?(或者我错过了什么?)

opencv sparse-matrix

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

对Ax = b并行化Solve()?

与STATS.se交叉,因为这个问题可以跨越两个STAT.se/SO https://stats.stackexchange.com/questions/17712/parallelize-solve-for-ax-b


我有一些非常大的稀疏矩阵,使用矩阵包中的spMatrix函数创建.

使用solve()函数适用于我的Ax = b问题,但需要很长时间.几天.

我注意到http://cran.r-project.org/web/packages/RScaLAPACK/RScaLAPACK.pdf 似乎有一个可以并行化解决方案功能的功能,但是,可能需要几周的时间来安装新的软件包特定服务器.

服务器已经安装了雪包.

所以

  1. 有没有办法使用雪来并行化此操作?
  2. 如果没有,还有其他方法可以加快这种类型的操作吗?
  3. 还有像RScaLAPACK这样的其他软件包吗?我对RScaLAPACK的搜索似乎表明人们对它有很多问题.

谢谢.

[编辑] - 其他细节

矩阵约为370,000 x 370,000.我用它来解决alpha中心问题,http://en.wikipedia.org/wiki/Alpha_centrality.我最初在igraph包中使用alpha中心函数,但它会崩溃R.

更多细节

  • 这是在一台机器上,有12个核心和96个内存(我相信)
  • 它是沿着引文关系线的有向图.
  • 计算条件数和密度需要一段时间.将发布,因为它可用.
  • 将对stat.SE进行crosspost并将链接添加回此处

parallel-processing r sparse-matrix

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

如何并行scipy稀疏矩阵乘法

我有一个scipy.sparse.csr_matrix格式的大型稀疏矩阵X,我想用一个利用并行性的numpy数组W来乘以它.经过一些研究后,我发现我需要在多处理中使用Array,以避免在进程之间复制X和W(例如:如何在Python多处理中将Pool.map与Array(共享内存)结合起来?并将共享的只读数据复制到Python多处理的不同过程?).这是我最近的尝试

import multiprocessing 
import numpy 
import scipy.sparse 
import time 

def initProcess(data, indices, indptr, shape, Warr, Wshp):
    global XData 
    global XIndices 
    global XIntptr 
    global Xshape 

    XData = data 
    XIndices = indices 
    XIntptr = indptr 
    Xshape = shape 

    global WArray
    global WShape 

    WArray = Warr     
    WShape = Wshp 

def dot2(args):
    rowInds, i = args     

    global XData 
    global XIndices
    global XIntptr 
    global Xshape 

    data = numpy.frombuffer(XData, dtype=numpy.float)
    indices = numpy.frombuffer(XIndices, dtype=numpy.int32)
    indptr = numpy.frombuffer(XIntptr, dtype=numpy.int32)
    Xr = scipy.sparse.csr_matrix((data, indices, …
Run Code Online (Sandbox Code Playgroud)

python parallel-processing scipy sparse-matrix

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

提高Scipy稀疏矩阵乘法性能

给定Scipy CSC稀疏矩阵"sm",其尺寸(170k x 170k)具有4.4亿个非零点,稀疏CSC矢量"v"(170k x 1)具有一些非零点,有什么可以是为提高操作性能而做的:

resul = sm.dot(v)
Run Code Online (Sandbox Code Playgroud)

目前大约需要1秒钟.初始化矩阵作为CSR将时间增加到3秒,因此CSC表现更好.

SM是产品之间相似性的矩阵,V是表示用户购买或点击的产品的向量.所以对于每个用户来说,sm都是一样的.

我使用的是Ubuntu 13.04,Intel i3 @ 3.4GHz,4核心.

研究SO我读了关于Ablas包的内容.我输入了终端:

~$ ldd /usr/lib/python2.7/dist-packages/numpy/core/_dotblas.so
Run Code Online (Sandbox Code Playgroud)

结果导致:

    linux-vdso.so.1 =>  (0x00007fff56a88000)
    libblas.so.3 => /usr/lib/libblas.so.3 (0x00007f888137f000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8880fb7000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8880cb1000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f888183c000)
Run Code Online (Sandbox Code Playgroud)

据我所知,这意味着我已经在使用Ablas的高性能套件.我仍然不确定这个软件包是否已经实现了并行计算,但它看起来并没有.

多核处理有助于提升性能吗?如果是这样,是否有任何库可能有助于python?

我也在考虑在Cython中实现这个的想法,但我不知道这是否会带来好的结果.

提前致谢.

python performance scipy sparse-matrix matrix-multiplication

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

将简单三元组矩阵(slam)转换为R中的稀疏矩阵(矩阵)

在slam包或Matrix包中是否有内置函数将简单三元组矩阵形式的稀疏矩阵(从slam包)转换为dgTMatrix/dgCMatrix形式的稀疏矩阵(来自Matrix包)?

是否有内置的方法从简单的三元组矩阵访问非零条目?

我在R工作

r matrix sparse-matrix

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

为什么迭代地图比在Golang中迭代切片要慢得多?

我在Golang中使用地图实现了一个稀疏矩阵,我注意到我的代码在这个改变之后开始花了很长时间才完成,在消除了其他可能的原因之后,似乎罪魁祸首就是地图本身的迭代.Go Playground链接(由于某种原因不起作用).

package main

import (
    "fmt"
    "time"
    "math"
)

func main() {
    z := 50000000
    a := make(map[int]int, z)
    b := make([]int, z)

    for i := 0; i < z; i++ {
        a[i] = i
        b[i] = i
    }

    t0 := time.Now()
    for key, value := range a {
        if key != value { // never happens
            fmt.Println("a", key, value)
        }
    }
    d0 := time.Now().Sub(t0)

    t1 := time.Now()
    for key, value := range b {
        if key …
Run Code Online (Sandbox Code Playgroud)

performance dictionary go sparse-matrix slice

9
推荐指数
2
解决办法
5367
查看次数

大稀疏矩阵到矩阵误差

我想应用鼠标包,但我无法将大型稀疏矩阵转换为矩阵.

library(Matrix)
library(mice)

i=c(2,9,6:10^7)
j=c(2,9,6:10^7)
x=7*(1:7^7)

write.csv(a,"a.csv")
c=read.csv("a.csv")
w=sparseMatrix(i=c[,1],j=c[,2],x=c[,3])

w=as.matrix(w)
Run Code Online (Sandbox Code Playgroud)
Error in asMethod(object) : 
      Cholmod error 'problem too large' at file ../Core/cholmod_dense.c, line 105
Run Code Online (Sandbox Code Playgroud)

r matrix sparse-matrix large-data r-mice

9
推荐指数
0
解决办法
3027
查看次数

将scipy稀疏矩阵存储为HDF5

我想以HDF5格式压缩和存储一个巨大的Scipy矩阵.我该怎么做呢?我试过以下代码:

a = csr_matrix((dat, (row, col)), shape=(947969, 36039))
f = h5py.File('foo.h5','w')    
dset = f.create_dataset("init", data=a, dtype = int, compression='gzip')
Run Code Online (Sandbox Code Playgroud)

我得到这样的错误,

TypeError: Scalar datasets don't support chunk/filter options
IOError: Can't prepare for writing data (No appropriate function for conversion path)
Run Code Online (Sandbox Code Playgroud)

我无法将其转换为numpy数组,因为会有内存溢出.什么是最好的方法?

python hdf5 scipy sparse-matrix h5py

9
推荐指数
2
解决办法
2768
查看次数