【问题标题】:Median for sparse matrix in numpynumpy中稀疏矩阵的中位数
【发布时间】:2017-10-17 22:01:29
【问题描述】:

在 python 中获取 sparse.csr_matrix 矩阵的中位数(沿行和列)的最佳方法是什么?

PS:webpage 没有任何中位数的功能

【问题讨论】:

  • 把它改成稠密的。
  • 很抱歉我在电话中的神秘评论。稀疏矩阵适用于可以表示为矩阵运算的运算。它甚至将它用于行总和和索引。但是对行的迭代很慢。如果您必须使用稀疏格式,请将您的矩阵转换为 lil 并向我们展示如何找到每个行列表的中位数。
  • np.median(M.A, axis=0) 对于一个合理稀疏的矩阵很可能全为 0。也就是说,一行中的大多数元素都是 0,中间的元素(在排序列表中)可能是 0。
  • 我认为最后一条评论很重要:如果中位数不为0;应该考虑稀疏比率:我真的想使用稀疏垫吗? (并不是说不可能在从稀疏矩阵复杂度方面获得的稀疏向量上加速中值计算;但在实践中可能只会为巨大的维度带来回报)

标签: python numpy scipy sparse-matrix median


【解决方案1】:

如果您在稀疏矩阵的列条目的中位数之后,sklearn 有 CSC 矩阵的实现

https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/utils/sparsefuncs.py#L441

如 cmets 中所述,nnz 元素的中位数在这里更有意义,因为对于足够稀疏的矩阵,行/列中位数为零。

【讨论】:

    猜你喜欢
    • 2017-07-20
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 2013-05-06
    • 2013-12-08
    • 2021-03-17
    相关资源
    最近更新 更多