python實(shí)現(xiàn)由數(shù)組生成對(duì)稱(chēng)矩陣
在實(shí)際應(yīng)用中,經(jīng)常會(huì)遇上這樣的小需求:根據(jù)一段給定的數(shù)組,生成由這一段數(shù)組值構(gòu)成的對(duì)稱(chēng)矩陣。
例如,給定數(shù)組[1,2,3,4,5,6,7,8,9,10],要求生成如下的矩陣:
[[0,1,2,3,4], [1,0,5,6,7], [2,5,0,8,9], [3,6,8,0,10], [4,7,9,10,0]]
其中,對(duì)角元全為0,該類(lèi)型的矩陣完全由給定的數(shù)組決定。
筆者給出實(shí)現(xiàn)以上功能的一種python參考代碼如下:
def semi_to_full(m):
import numpy as np
n = len(m)
n_matrix = int((1+int((1+8*n)**0.5))/2)
semi_matrix = np.zeros((n_matrix,n_matrix),dtype='int32')
start_index = 0
for row in range(n_matrix-1):
end_index = start_index+(n_matrix-1-row)
semi_matrix[row,row+1:]=m[start_index:end_index]
start_index = end_index
full_matrix = semi_matrix+semi_matrix.T
return full_matrix
代碼邏輯如此:先得到數(shù)組長(zhǎng)度以推定出所欲生成矩陣的規(guī)格,接著按照數(shù)組值的順序生成矩陣的上對(duì)角元,最后利用對(duì)稱(chēng)性完成整個(gè)矩陣輸出。
該函數(shù)參數(shù)只有一個(gè),即給定的numpy數(shù)組。
到此這篇關(guān)于python實(shí)現(xiàn)由數(shù)組生成對(duì)稱(chēng)矩陣的文章就介紹到這了,更多相關(guān)由數(shù)組生成對(duì)稱(chēng)矩陣內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python 實(shí)現(xiàn)將數(shù)組/矩陣轉(zhuǎn)換成Image類(lèi)
- python中數(shù)組和矩陣乘法及使用總結(jié)(推薦)
- python中numpy的矩陣、多維數(shù)組的用法
- python矩陣轉(zhuǎn)換為一維數(shù)組的實(shí)例
- 對(duì)Python 中矩陣或者數(shù)組相減的法則詳解
- Python3 列表,數(shù)組,矩陣的相互轉(zhuǎn)換的方法示例
- python 解決print數(shù)組/矩陣無(wú)法完整輸出的問(wèn)題
- python數(shù)組轉(zhuǎn)換為矩陣的方法實(shí)現(xiàn)
相關(guān)文章
Python+tkinter實(shí)現(xiàn)音樂(lè)下載軟件的制作
平常我們下載的歌曲,都是各種妖魔鬼怪的格式橫行,想下載下來(lái)用一下都不行,還只能在它的播放器內(nèi)聽(tīng),這誰(shuí)受得了~本文就來(lái)用Python制作個(gè)音樂(lè)下載軟件,需要的可以參考一下2022-09-09
python 實(shí)現(xiàn)簡(jiǎn)易的記事本
這篇文章主要介紹了python 實(shí)現(xiàn)簡(jiǎn)易的記事本的示例代碼,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-11-11
Matplotlib中%matplotlib inline如何使用
這篇文章主要介紹了Matplotlib中%matplotlib inline如何使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Python assert語(yǔ)句的簡(jiǎn)單使用示例
這篇文章主要給大家介紹了關(guān)于Python assert語(yǔ)句的簡(jiǎn)單使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Python數(shù)據(jù)可視化制作全球地震散點(diǎn)圖
這篇文章主要介紹了Python數(shù)據(jù)可視化制作全球地震散點(diǎn)圖,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-08-08
Python動(dòng)態(tài)創(chuàng)建類(lèi)實(shí)例詳解
這篇文章主要為大家介紹了Python動(dòng)態(tài)創(chuàng)建類(lèi)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12

