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

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

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

對角矩陣

scipy中的函數(shù)

在scipy.linalg中,通過tri(N, M=None, k=0, dtype=None)可生成N×M對角矩陣,若M=None,則M默認為N。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的分界線相對于對角線的位置,例如

>>> 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可用于提取出矩陣的左下和右上的三角陣,其輸入?yún)?shù)除了待提取矩陣之外,另一個參數(shù)與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)而言,會生成如下形式矩陣

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

相關文章

最新評論