【发布时间】:2011-02-02 03:51:49
【问题描述】:
所以,我正在使用非常稀疏的 numpy 数组进行一些 Kmeans 分类 - 很多很多零。我想我会使用 scipy 的“稀疏”包来减少存储开销,但我对如何创建数组而不是矩阵有点困惑。
我已经阅读了有关如何创建稀疏矩阵的教程: http://www.scipy.org/SciPy_Tutorial#head-c60163f2fd2bab79edd94be43682414f18b90df7
为了模拟一个数组,我只创建了一个 1xN 矩阵,但正如您可能猜到的那样,Asp.dot(Bsp) 并不能很好地工作,因为您不能将两个 1xN 矩阵相乘。我必须将每个数组转置为 Nx1,这很糟糕,因为我会为每个点积计算都这样做。
接下来,我尝试创建一个 NxN 矩阵,其中第 1 列 == 第 1 行(这样您可以将两个矩阵相乘并将左上角作为点积),但结果证明效率非常低.
我很想使用 scipy 的 sparse 包作为 numpy 的 array() 的神奇替代品,但到目前为止,我还不确定该怎么做。
有什么建议吗?
【问题讨论】:
-
见下面的 cmets,但我最终只是滚动了我自己的稀疏向量实现,使用类似于“dok”矩阵的东西。
-
原来的问题链接好像失效了。 @spitzanator。
标签: python matrix numpy scipy sparse-matrix