python中的mmap稀疏向量

时间:2015-04-11 08:49:15

标签: python numpy mmap

我正在寻找可以映射到内存的简单稀疏向量实现,类似于numpy.memmap

不幸的是,numpy实现仅涉及完整向量。用法示例:

vec = SparseVector('/tmp/file.dat')  # SparseVector is the class I'm looking for
vec[10] = 10
vec[50] = 21

for key in vec:
    print vec[key]    # 10, 21

我fng scipy类表示稀疏矩阵,但是2维度使用起来很笨,因为我需要只用一行制作矩阵然后使用vec[0,i]

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

其他人只是询问1d稀疏向量,只是他们想利用处理重复索引的scipy.sparse方法。

is there something like coo_matrix but for sparse vectors?

如图所示,coo_matrix实际上包含3个numpy数组,datarowcol。其他格式以其他方式重新排列值,lil例如有2个嵌套列表,一个用于数据,另一个用于坐标。 dok是常规字典,其中(i,j)元组为键。

理论上,稀疏向量将需要2个数组。或者如您的示例所示,它可能是一个简单的字典。

因此,您可以使用两个mmap数组实现mmap稀疏向量。据我所知,没有scipy sparse矩阵的mmap版本,虽然这不是我所寻找的。

但是你想要什么功能?什么尺寸?如此之大,密集版本不适合常规内存?你在做数学吗?或者只是数据查找?