我正在寻找可以映射到内存的简单稀疏向量实现,类似于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]
。
有什么建议吗?
答案 0 :(得分:0)
其他人只是询问1d稀疏向量,只是他们想利用处理重复索引的scipy.sparse
方法。
is there something like coo_matrix but for sparse vectors?
如图所示,coo_matrix
实际上包含3个numpy
数组,data
,row
,col
。其他格式以其他方式重新排列值,lil
例如有2个嵌套列表,一个用于数据,另一个用于坐标。 dok
是常规字典,其中(i,j)
元组为键。
理论上,稀疏向量将需要2个数组。或者如您的示例所示,它可能是一个简单的字典。
因此,您可以使用两个mmap数组实现mmap稀疏向量。据我所知,没有scipy sparse
矩阵的mmap版本,虽然这不是我所寻找的。 p>
但是你想要什么功能?什么尺寸?如此之大,密集版本不适合常规内存?你在做数学吗?或者只是数据查找?