【问题标题】:Efficiently subtract the mean off the columns of a sparse matrix in Python在 Python 中有效地从稀疏矩阵的列中减去平均值
【发布时间】:2020-07-25 16:51:16
【问题描述】:

说,我们有一个 scipy 稀疏矩阵

from scipy.sparse import csc_matrix
mat = scipy.sparse.csc_matrix([[0, 1, 2]
                               [0, -1, 3]])

柱状表示为0, 0, 2.5 所以从列的每个元素中减去柱状平均值后的结果应该是,

[
   [0, 1, -.5]
   [0, -1, .5]
]

由于矩阵很大,有没有一种有效的方法,即不用.toarray()来计算?

【问题讨论】:

  • 为什么不使用numpy数组?
  • 请定义巨大的
  • 这也取决于你使用的稀疏格式的类型。
  • 大部分列的平均值会是0吗?
  • 你是否也在从 0 中减去平均值?

标签: python scipy sparse-matrix


【解决方案1】:

没有有效的方法,因为除非您的均值几乎全为零,否则生成的矩阵将不会稀疏。

您唯一的选择是单独转发此信息(例如,作为每列的恒定偏移量)并适当地更改您的算法,或切换到密集矩阵。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 2011-01-23
    • 2018-08-07
    • 1970-01-01
    • 2020-07-30
    • 2021-11-18
    相关资源
    最近更新 更多