python中scipy學習 隨機稀疏矩陣及操作

2021-07-25 21:29:05 字數 2051 閱讀 5098

1.生成隨機稀疏矩陣:

scipy中生成隨機稀疏矩陣的函式如下:

scipy.sparse.rand(m,n,density,format,dtype,random_state)
引數介紹:

引數含義

m,n整型;表示矩陣的行和列

density

實數型別;表示矩陣的稀疏度

format

str型別;表示矩陣的型別;如format=『coo』

dtype

dtype;表示返回矩陣值的型別

ranom_state

;可選的隨機種子;如果空缺,預設numpy.random

例子

**如下:

import scipy as spy

n=4m=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=4m=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=2print(a[i,:])

print('輸出第j列非零值...')

j=2print(a[:,j])

print('輸出座標為(i,j)對應的值...')

print(a[i,j])

輸出結果如下:

自定義生成乙個csc格式的稀疏矩陣..

稀疏矩陣的非稀疏表示形式...

[[3100]

[0081]

[0000]

[0035]]

稀疏矩陣的非零元素對應座標...

(array([0, 0, 1, 1, 3, 3], dtype=int32), array([0, 1, 2, 3, 2, 3], dtype=int32))

輸出非零元素對應的行座標和列座標...[00

1133]

[0123

23]輸出第i行非零值...

輸出第j列非零值...

(1, 0) 8

(3, 0) 3

輸出座標為(i,j)對應的值...

0

python學習第13周 scipy

10.1 題目 題解import numpy from scipy.linalg import lstsq 10.1 least square m 20 n 10 a numpy.random.normal size m,n b numpy.random.normal size m x,residu...

python學習 scipy知識點

1.1 integral積分運算 import numpy as np from scipy.integrate import quad,dblquad,nquad quad是一元積分,dblquad是二元積分,nquad表示n維的積分 print quad lambda x np.exp x 0,...

利用python中的scipy模組做線性規劃

為數學建模準備。scipy.optimize.linprog 引數選擇 linprog c,a ub,b ub,a ed,b ed,bounds none 引數解釋 c 價值向量,只規劃最小值,若規劃最大值需改為 c,但注意得出的結果應再加負號即為所求最大值 a ub和b ub 分別對應於不等式約束...