Python用scipy生成特殊矩陣
scipy.linalg中提供了一系列特殊矩陣的生成方法,包括循環(huán)矩陣、漢克爾矩陣、費德勒矩陣、阿達(dá)馬矩陣、萊斯利矩陣、希爾伯特及其逆矩陣、帕斯卡及其逆矩陣等。
循環(huán)矩陣

A = circulant([1,2,3]) print(A) ''' [[1 3 2] [2 1 3] [3 2 1]] '''
漢克爾矩陣
漢克爾矩陣和循環(huán)矩陣十分相似,不過在向左移位的過程中,hankel(c, r=None)在末尾直接賦0。若r不為None,則通過r對末位進(jìn)行賦值
print(hankel([1,2,3,4], [0,7,7,8,9])) ''' [[1 2 3 4 7] [2 3 4 7 7] [3 4 7 7 8] [4 7 7 8 9]] '''
費德勒矩陣

阿達(dá)馬矩陣
阿達(dá)馬矩陣的每個元素都是± 1 \pm1±1,每行都互相正交,常用于糾錯碼。在scipy.linalg中,hadamard(n, dtype)根據(jù)n來生成標(biāo)準(zhǔn)的n × n n\times nn×n阿達(dá)馬矩陣,需要注意n nn必須為偶數(shù),dtype為可選參數(shù),用于指明矩陣的數(shù)據(jù)類型。
print(hadamard(4)) ''' [[ 1 1 1 1] [ 1 -1 1 -1] [ 1 1 -1 -1] [ 1 -1 -1 1]] '''
萊斯利矩陣
leslie(f, s),其輸入f ff和s ss兩個向量,輸出矩陣的形式為

print(leslie([0.1, 2.0, 1.0, 0.1], [0.2, 0.8, 0.7])) ''' [[0.1 2. 1. 0.1] [0.2 0. 0. 0. ] [0. 0.8 0. 0. ] [0. 0. 0.7 0. ]] '''
希爾伯特及其逆矩陣

print(hilbert(3)) ''' [[1. 0.5 0.33333333] [0.5 0.33333333 0.25 ] [0.33333333 0.25 0.2 ]] '''
invhilbert(n, exact=False)可生成n × n n\times nn×n希爾伯特矩陣的逆矩陣,當(dāng)exact為False時,返回np.float64類型矩陣;否則返回np.int64類型。
帕斯卡及其逆矩陣

print(pascal(4)) ''' [[ 1 1 1 1] [ 1 2 3 4] [ 1 3 6 10] [ 1 4 10 20]] '''
invpascal可生成逆帕斯卡矩陣,其參數(shù)與pascal相同。
到此這篇關(guān)于Python用scipy生成特殊矩陣的文章就介紹到這了,更多相關(guān)Python scipy生成矩陣內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Python將Markdown格式轉(zhuǎn)為EPUB電子書格式的代碼實現(xiàn)
Python生成器實現(xiàn)簡單"生產(chǎn)者消費者"模型代碼實例
python萬年歷實現(xiàn)代碼 含運行結(jié)果

