中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Python實現生成對角矩陣和對角塊矩陣

發布時間:2023-04-18 17:13:54 來源:億速云 閱讀:120 作者:iii 欄目:開發技術

這篇文章主要介紹了怎么使用Python實現生成對角矩陣和對角塊矩陣的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇怎么使用Python實現生成對角矩陣和對角塊矩陣文章都會有所收獲,下面我們一起來看看吧。

    對角矩陣

    scipy中的函數

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

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

    在numpy中也提供了多種對角矩陣生成函數,包括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用于調節0和1的分界線相對于對角線的位置,例如

    >>> np.tri(3,5,1)
    array([[1., 1., 0., 0., 0.],
           [1., 1., 1., 0., 0.],
           [1., 1., 1., 1., 0.]])
    >>> np.tri(3,5,2)
    array([[1., 1., 1., 0., 0.],
           [1., 1., 1., 1., 0.],
           [1., 1., 1., 1., 1.]])
    >>> np.tri(3,5,3)
    array([[1., 1., 1., 1., 0.],
           [1., 1., 1., 1., 1.],
           [1., 1., 1., 1., 1.]])

    tril, triu可用于提取出矩陣的左下和右上的三角陣,其輸入參數除了待提取矩陣之外,另一個參數與tri中的k相同。

    x = np.arange(12).reshape(4,3)
    >>> np.tril(x,-1)
    array([[ 0,  0,  0],
           [ 3,  0,  0],
           [ 6,  7,  0],
           [ 9, 10, 11]])
    >>> np.triu(x,-1)
    array([[ 0,  1,  2],
           [ 3,  4,  5],
           [ 0,  7,  8],
           [ 0,  0, 11]])

    對角塊矩陣

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

    怎么使用Python實現生成對角矩陣和對角塊矩陣

    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)
    print(bd)
    '''
    [[1.   1.   0.   0.   0.   0.   0.   0.  ]
     [1.   1.   0.   0.   0.   0.   0.   0.  ]
     [0.   0.   0.8  0.38 0.41 0.   0.   0.  ]
     [0.   0.   0.84 0.45 0.24 0.   0.   0.  ]
     [0.   0.   0.32 0.22 0.25 0.   0.   0.  ]
     [0.   0.   0.   0.   0.   1.   0.   0.  ]
     [0.   0.   0.   0.   0.   0.   2.   0.  ]
     [0.   0.   0.   0.   0.   0.   0.   3.  ]]
    '''

    其中

    怎么使用Python實現生成對角矩陣和對角塊矩陣

    關于“怎么使用Python實現生成對角矩陣和對角塊矩陣”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“怎么使用Python實現生成對角矩陣和對角塊矩陣”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    广宗县| 如东县| 津南区| 澄城县| 香港| 磐石市| 三原县| 屯昌县| 师宗县| 大连市| 保康县| 桐梓县| 勐海县| 孝义市| 安庆市| 普宁市| 定日县| 信宜市| 大新县| 广东省| 邵东县| 武义县| 溧水县| 河间市| 福贡县| 沅陵县| 砀山县| 昭苏县| 武冈市| 赤城县| 马关县| 侯马市| 佛冈县| 藁城市| 鱼台县| 扬州市| 仁化县| 昌吉市| 辽宁省| 海阳市| 读书|