python中scipy学习——随机稀疏矩阵及操作
Posted 蔡军帅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中scipy学习——随机稀疏矩阵及操作相关的知识,希望对你有一定的参考价值。
1.生成随机稀疏矩阵:
scipy中生成随机稀疏矩阵的函数如下:
scipy.sparse.rand(m,n,density,format,dtype,random_state)
- 1
参数介绍:
参数 | 含义 |
---|---|
m,n | 整型;表示矩阵的行和列 |
density | 实数类型;表示矩阵的稀疏度 |
format | str类型;表示矩阵的类型;如format=‘coo’ |
dtype | dtype;表示返回矩阵值的类型 |
ranom_state | {numpy.random.RandomState,int};可选的随机种子;如果空缺,默认numpy.random |
例子
代码如下:
import scipy as spy n=4 m=4 density=0.5 matrixformat=‘coo‘ B=spy.sparse.rand(m,n,density=density,format=matrixformat,dtype=None) print(B) >>> (1, 1) 0.0687198939788 (3, 3) 0.141328654998 (0, 3) 0.944468193258 (2, 3) 0.598652789611 (0, 2) 0.0629165518906 (2, 0) 0.624087894456 (1, 2) 0.309460820898 (2, 2) 0.731375305002
2.稀疏矩阵的操作:
import scipy as spy n=4 m=4 row=spy.array([0,0,0,1,1,3,3]) col=spy.array([0,0,1,2,3,2,3]) value=spy.array([1,2,1,8,1,3,5]) print(‘自定义生成一个csc格式的稀疏矩阵..‘)#‘coo‘格式的矩阵无法进行以下某些操作 A=spy.sparse.csc_matrix((value,(row,col)),shape=(n,m)) print(‘稀疏矩阵的非稀疏表示形式...‘) print(A.todense()) print(‘稀疏矩阵的非零元素对应坐标...‘) nonzero=A.nonzero() print(nonzero) print(‘输出非零元素对应的行坐标和列坐标...‘) print(nonzero[0]) print(nonzero[1]) print(‘输出第i行非零值...‘) i=2 print(A[i,:]) print(‘输出第j列非零值...‘) j=2 print(A[:,j]) print(‘输出坐标为(i,j)对应的值...‘) print(A[i,j])
输出结果如下:
自定义生成一个csc格式的稀疏矩阵.. 稀疏矩阵的非稀疏表示形式... [[3 1 0 0] [0 0 8 1] [0 0 0 0] [0 0 3 5]] 稀疏矩阵的非零元素对应坐标... (array([0, 0, 1, 1, 3, 3], dtype=int32), array([0, 1, 2, 3, 2, 3], dtype=int32)) 输出非零元素对应的行坐标和列坐标... [0 0 1 1 3 3] [0 1 2 3 2 3] 输出第i行非零值... 输出第j列非零值... (1, 0) 8 (3, 0) 3 输出坐标为(i,j)对应的值... 0
注:更多参考请查看docs.scipy.org
以上是关于python中scipy学习——随机稀疏矩阵及操作的主要内容,如果未能解决你的问题,请参考以下文章