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
對末位進行賦值
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實現(xiàn)嵌套列表的7中方法總結(jié)
這篇文章主要來給大家講解一個Python的進階知識點:如何將一個嵌套的大列表展開形成一個列表。小編提供了7種方法供大家學(xué)習(xí)參考,希望大家能喜歡2023-03-03python網(wǎng)絡(luò)編程學(xué)習(xí)筆記(四):域名系統(tǒng)
當(dāng)我們在上網(wǎng)的時候,通常輸入的是網(wǎng)址,其實這就是一個域名,而我們計算機網(wǎng)絡(luò)上的計算機彼此之間只能用IP地址才能相互識別2014-06-06python用tkinter實現(xiàn)一個gui的翻譯工具
這篇文章主要介紹了python用tkinter實現(xiàn)一個gui的翻譯工具,幫助大家更好的理解和使用python,感興趣的朋友可以了解下 +2020-10-10Python如何獲取Win7,Win10系統(tǒng)縮放大小
這篇文章主要介紹了Python如何獲取Win7,Win10系統(tǒng)縮放大小,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-01-01