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

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

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

矩陣可視化

為了展現(xiàn)不同矩陣之間的差別,在具體介紹scipy中的不同矩陣之前,先構造一個用于繪制矩陣的函數(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}")

對角矩陣

scipy中的函數(shù)

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

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

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

numpy.diagflat

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

>>> 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])) #提取對角元素
array([1., 1., 1.])

numpy.tri

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

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ù)除了待提取矩陣之外,另一個參數(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()

對角塊矩陣

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

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()

繪圖結果如下

其中

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

相關文章

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

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

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

    pyinstaller通過spec文件打包py程序的步驟

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

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

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

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

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

    python處理cookie詳解

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

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

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

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

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

    Python可視化目標檢測框的實現(xiàn)代碼

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

    Python函數(shù)中不定長參數(shù)的寫法

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

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

    最近再用Matplotlib繪圖,需要做兩個子圖都不需要設置圖例,圖例單獨用一個figure來顯示,本文就詳細的來介紹一下,感興趣的可以了解一下
    2023-08-08

最新評論