91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

怎么使用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

    启东市| 北碚区| 自治县| 平凉市| 墨竹工卡县| 迁安市| 黔南| 封丘县| 巴里| 遵义县| 定兴县| 宜宾市| 临潭县| 伊通| 绥芬河市| 德昌县| 运城市| 永清县| 卢湾区| 珲春市| 荆州市| 新泰市| 寿宁县| 睢宁县| 梅河口市| 花垣县| 焦作市| 康保县| 红原县| 尤溪县| 承德市| 鱼台县| 左权县| 京山县| 左贡县| 巴彦县| 襄樊市| 兰州市| 上杭县| 千阳县| 林周县|