欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Python實(shí)現(xiàn)生成對(duì)角矩陣和對(duì)角塊矩陣

 更新時(shí)間:2024年01月18日 10:15:07   作者:微小冷  
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)生成對(duì)角矩陣和對(duì)角塊矩陣,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

矩陣可視化

為了展現(xiàn)不同矩陣之間的差別,在具體介紹scipy中的不同矩陣之前,先構(gòu)造一個(gè)用于繪制矩陣的函數(shù)

import matplotlib.pyplot as plt
from itertools import product
def drawMat(x, ax=None):
    M, N = x.shape
    if not ax:
        ax = plt.subplot()
    arrM, arrN = np.arange(M), np.arange(N)
    plt.yticks(arrM+0.5, arrM)
    plt.xticks(arrN+0.5, arrN)
    ax.pcolormesh(x)
    ax.invert_yaxis()
    for i,j in product(range(M),range(N)):
        if x[i,j]!=0:
            ax.text(j+0.2, i+0.55, f"{x[i,j]:.2}")

對(duì)角矩陣

scipy中的函數(shù)

在scipy.linalg中,通過(guò)tri(N, M=None, k=0, dtype=None)可生成N × M N\times MN×M對(duì)角矩陣,若M=None,則M MM默認(rèn)為N NN。k表示矩陣中用1填充的次對(duì)角線個(gè)數(shù)。

print(tri(3,5,2,dtype=int))
'''
[[1 1 1 0 0]
 [1 1 1 1 0]
 [1 1 1 1 1]]
'''

在numpy中也提供了多種對(duì)角矩陣生成函數(shù),包括diag, diagflat, tri, tril, triu等,

numpy.diagflat

diagflat用于生成對(duì)角矩陣,diag在diagflat基礎(chǔ)上,添加了提取對(duì)角元素的功能,例如

>>> np.diagflat([1,2,3])
array([[1, 0, 0],
       [0, 2, 0],
       [0, 0, 3]])
>>> np.diag([1,2,3])
array([[1, 0, 0],
       [0, 2, 0],
       [0, 0, 3]])
>>> np.diag(np.ones([3,3])) #提取對(duì)角元素
array([1., 1., 1.])

numpy.tri

tri(M,N,k)用于生成M行N列的三角陣,其元素為0或者1,k用于調(diào)節(jié)0和1的分界線相對(duì)于對(duì)角線的位置,例如

fig = plt.figure()
mats = {
    351:np.tri(3,5,1),
    352:np.tri(3,5,2),
    353:np.tri(3,5,3)
}
for i,key in enumerate(mats, 1):
    ax = fig.add_subplot(1,3,i)
    drawMat(mats[key], ax)

???????plt.show()

tril, triu可用于提取出矩陣的左下和右上的三角陣,其輸入?yún)?shù)除了待提取矩陣之外,另一個(gè)參數(shù)與tri中的k相同。

fig = plt.figure()
x = np.arange(12).reshape(4,3)
mats = [np.tril(x,-1),np.triu(x,-1)]
for i,mat in enumerate(mats, 1):
    print(i, mat)
    ax = fig.add_subplot(1,2,i)
    drawMat(mat.astype(float), ax)

plt.show()

對(duì)角塊矩陣

對(duì)于scipy.linalg.block_diag(A,B,C)而言,會(huì)生成如下形式矩陣

from scipy.linalg import *
import numpy as np
A = np.ones([2,2])
B = np.round(np.random.rand(3,3),2)
C = np.diag([1,2,3])
bd = block_diag(A,B,C)
drawMat(bd)
plt.show()

繪圖結(jié)果如下

其中

到此這篇關(guān)于使用Python實(shí)現(xiàn)生成對(duì)角矩陣和對(duì)角塊矩陣的文章就介紹到這了,更多相關(guān)Python對(duì)角矩陣內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)現(xiàn)Web服務(wù)器FastAPI的步驟詳解

    Python實(shí)現(xiàn)Web服務(wù)器FastAPI的步驟詳解

    FastAPI?是一個(gè)用于構(gòu)建?API?的現(xiàn)代、快速(高性能)的?web?框架,使用?Python?3.6+?并基于標(biāo)準(zhǔn)的?Python類(lèi)型提示,這篇文章主要介紹了Python實(shí)現(xiàn)Web服務(wù)器FastAPI的過(guò)程,需要的朋友可以參考下
    2022-06-06
  • pyinstaller通過(guò)spec文件打包py程序的步驟

    pyinstaller通過(guò)spec文件打包py程序的步驟

    這篇文章主要介紹了pyinstaller通過(guò)spec文件打包py程序,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • python3+pyqt5+itchat微信定時(shí)發(fā)送消息的方法

    python3+pyqt5+itchat微信定時(shí)發(fā)送消息的方法

    今天小編就為大家分享一篇python3+pyqt5+itchat微信定時(shí)發(fā)送消息的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • python 獲取url中的參數(shù)列表實(shí)例

    python 獲取url中的參數(shù)列表實(shí)例

    今天小編就為大家分享一篇python 獲取url中的參數(shù)列表實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • python處理cookie詳解

    python處理cookie詳解

    Cookie用于服務(wù)器實(shí)現(xiàn)會(huì)話(huà),用戶(hù)登錄及相關(guān)功能時(shí)進(jìn)行狀態(tài)管理,本文介紹了使用python處理cookie的方法,需要的朋友可以參考下
    2014-02-02
  • Python爬蟲(chóng)實(shí)現(xiàn)vip電影下載的示例代碼

    Python爬蟲(chóng)實(shí)現(xiàn)vip電影下載的示例代碼

    這篇文章主要介紹了Python爬蟲(chóng)實(shí)現(xiàn)vip電影下載的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python datetime庫(kù)函數(shù)的示例詳解

    Python datetime庫(kù)函數(shù)的示例詳解

    datetime?是 Python 內(nèi)置的日期時(shí)間處理庫(kù),它包含了處理日期、時(shí)間、時(shí)間間隔等的類(lèi)和函數(shù),這篇文章主要介紹了Python datetime庫(kù)函數(shù)的詳解,需要的朋友可以參考下
    2023-07-07
  • Python可視化目標(biāo)檢測(cè)框的實(shí)現(xiàn)代碼

    Python可視化目標(biāo)檢測(cè)框的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Python可視化目標(biāo)檢測(cè)框的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Python函數(shù)中不定長(zhǎng)參數(shù)的寫(xiě)法

    Python函數(shù)中不定長(zhǎng)參數(shù)的寫(xiě)法

    今天小編就為大家分享一篇關(guān)于Python函數(shù)中不定長(zhǎng)參數(shù)的寫(xiě)法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • Matplotlib自定義圖例(多張圖共享一個(gè)圖例)

    Matplotlib自定義圖例(多張圖共享一個(gè)圖例)

    最近再用Matplotlib繪圖,需要做兩個(gè)子圖都不需要設(shè)置圖例,圖例單獨(dú)用一個(gè)figure來(lái)顯示,本文就詳細(xì)的來(lái)介紹一下,感興趣的可以了解一下
    2023-08-08

最新評(píng)論