【问题标题】:mmap sparse vector in pythonpython中的mmap稀疏向量
【发布时间】:2023-04-07 13:52:01
【问题描述】:

我正在寻找可以映射到内存中的简单稀疏向量实现,类似于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

我创建了scipy 表示稀疏矩阵的类,但是二维使用起来很笨拙,因为我需要制作只有一行的矩阵然后使用vec[0,i]

有什么建议吗?

【问题讨论】:

  • SparseVector 来自哪里?这与 Apache Spark 有关吗?如果是这样,您应该使用此信息标记您的问题并更新文本。
  • 不,我的意思是这就是我要找的课程(还不知道名字),抱歉误会,我会尽快编辑

标签: python numpy mmap


【解决方案1】:

其他人只是询问一维稀疏向量,只是他们想利用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 版本,尽管它不是我一直在寻找的东西。

但是您想要什么功能?什么维度?如此之大以至于密集版本不适合常规内存?你在用它做数学吗?还是只是数据查找?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    相关资源
    最近更新 更多