【发布时间】:2019-07-27 07:18:50
【问题描述】:
我是 Python 的新手,我有一个(可能非常幼稚)的问题。我有一个要处理的 CSR(压缩稀疏行)矩阵(我们将其命名为 M),并且看起来一些为 2d numpy 数组操作而设计的函数适用于我的矩阵,而另一些则没有。
例如,numpy.sum(M, axis=0) 工作正常,而 numpy.diagonal(M) 给出错误提示 {ValueError}diag requires an array of at least two dimensions。
那么为什么一个矩阵函数在M 上起作用而另一个不起作用的背后有什么理由吗?
还有一个额外的问题是,鉴于上述numpy.diagonal 不起作用,如何从 CSR 矩阵中获取对角线元素?
【问题讨论】:
-
一般情况下,尽可能使用
sparse提供的功能和方法。稀疏矩阵不是ndarray的子类,因此numpy函数通常不适用于这些矩阵,尤其是当它们首先尝试将输入转换为数组时,例如np.asarray(yourmatrix).
标签: python numpy matrix sparse-matrix diagonal