【发布时间】:2013-12-06 05:48:25
【问题描述】:
我在网上搜索了 Scipy 稀疏矩阵的指南,但失败了。如果有人愿意分享它的任何来源,我会很高兴,但现在要质疑:
我有一个元组数组。我想将元组数组更改为稀疏矩阵,其中元组出现在主对角线和旁边的对角线上,如下例所示。什么是花哨(高效)的方法?
import numpy as np
A=np.asarray([[1,2],[3,4],[5,6],[7,8]])
B=np.zeros((A.shape[0],A.shape[0]+1))
for i in range(A.shape[0]):
B[i,i]=A[i,0]
B[i,i+1]=A[i,1]
print B
输出是:
[[ 1. 2. 0. 0. 0.]
[ 0. 3. 4. 0. 0.]
[ 0. 0. 5. 6. 0.]
[ 0. 0. 0. 7. 8.]]
【问题讨论】:
-
这可能是我猜的最愚蠢的方式。
-
scipy sparse 包的主要信息来源是它的参考页面:docs.scipy.org/doc/scipy/reference/sparse.html。然而,这不是一个精致的用户或初学者指南。请记住,此软件包仍在开发中。 Matlab 的稀疏矩阵可能有更好的文档。
标签: python arrays numpy scipy sparse-matrix