存储器有效存储许多大型scipy稀疏矩阵

时间:2012-10-24 07:48:06

标签: python memory dictionary scipy sparse-matrix

我需要存储大约50,000个scipy稀疏csr矩阵,其中每个矩阵是一个长度为3.7Million的向量:

x = scipy.sparse.csr_matrix((3.7Mill,1))

我目前将它们存储到一个简单的字典中,因为我还需要知道每个向量的相应键(在这种情况下,键只是一个简单的整数)。

现在的问题是需要大量的内存。有没有更有效的方法?

1 个答案:

答案 0 :(得分:3)

尝试使用Lazy数据结构。

例如:

def lazy(func):
    def lazyfunc(*args, **kwargs):
        temp = lambda x : func(*args, **kwargs)
        temp.__name__ = "lazy-" + func.__name__
        return temp
    return lazyfunc

"""
Add some simple functions
"""
def add(x, y):
    print "Not lazy"
    return x + y

@lazy
def add_lazy(x, y):
    print "lazy!"
    return x + y

用法:

>>> add(1, 2)
Not lazy
3
$ add_lazy(1, 2)
<function lazy-add_lazy at 0x021E9470>
>>> myval = add_lazy(1, 2)
>>> myval()
lazy!
3

看看: