您好,登錄后才能下訂單哦!
這篇文章主要介紹“python矩陣轉置的方法是什么”,在日常操作中,相信很多人在python矩陣轉置的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”python矩陣轉置的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
線性回歸的普通最小二乘法。 普通最小二乘法 (OLS) 是一種在簡單線性回歸中估計參數 β 的方法,Xβ = y,其中 X 是特征矩陣,y 是因變量(或目標),通過最小化給定數據集中觀察到的因變量與線性函數預測的因變量之間的差異。
那么話不多說我們來看下下面這個代碼:
import numpy as npimport numpy as np
xn, xp = [2,2]
array = []
for i in range(2):
array = [1, 0,0 ,2]
x = np.array(array).reshape(2, 2)
y = np.array([2,3])
# .T 表示對該矩陣進行轉置
a = np.dot(np.dot(np.linalg.inv(np.dot(x.T, x)), x.T), y).round(2)
print(a)
#輸出的內容為:[2. 1.5]
在代碼“a = np.dot(np.dot(np.linalg.inv(np.dot(x.T, x)), x.T), y).round(2)”
中,dot
函數是矩陣乘,那么對于“*”則是表示為逐個元素相乘。我們可以看看下面的這個代碼:
dot函數使用:
a =np.array([[1,1],[1,1]])
b = np.array ([[1,0],[O,1]])
np.dot (a,b) #矩陣乘
結果:array( [[1,1],
[1,1]])
“*”使用:
a =np.array([[1,1],[1,1]])
b = np.array ([[1,0],[O,1]])
c = a*b #對應元素相乘
結果:array( [[1,0], [0,1]])
在通過代碼實現之后我們對于 dot
與“*”
使用的是有差別了。
np.linalg.inv() 是矩陣求逆的意思,除此之外還有 np.linalg.det() 矩陣求行列式 、 np.linalg.norm() 求范數和 np.linalg.eigh 計算矩陣特征向量。
矩陣轉置方法代碼分享如下:
#Python的matrix轉置matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
def printmatrix(m):for ele in m: for i in ele:
print("%2d" %i,end = " ")
print()#1、利用元祖的特性進行轉置def transformMatrix(m):#此處巧妙的先按照傳遞的元祖m的列數,生成了r的行數
r = [[] for i in m[0]]
for ele in m: for i in range(len(ele)): #【重點】:此處利用m的第ele行i列,并將該值追加到r的i行上;巧妙的利用了i
r[i].append(ele[i]) #printmatrix(r)#方便查看數組是怎么賦值的,如不需要可注釋掉#print("*"*20)#打印分隔符return r
#2、利用zip函數生成轉置矩陣def transformMatrix1(m):return zip(*m)
#3、利用numpy模塊的transpose方法def transformMatrix2(m):import numpy return numpy.transpose(m).tolist()
print("第一種方法結果展示")
printmatrix(transformMatrix(matrix))
print("第二種方法結果展示")
printmatrix(transformMatrix1(matrix))
print("第二種方法的簡潔代碼展示")
printmatrix(zip(*matrix))#為了代碼更簡潔,可以不用transformMatrix1函數,直接打印print("第三種方法的結果展示")
printmatrix(transformMatrix2(matrix))
運行結果如下:
第一種方法結果展示
1 5 9
2 6 10
3 7 11
4 8 12
第二種方法結果展示
1 5 9
2 6 10
3 7 11
4 8 12
第二種方法的簡潔代碼展示
1 5 9
2 6 10
3 7 11
4 8 12
第三種方法的結果展示
1 5 9
2 6 10
3 7 11
4 8 12
到此,關于“python矩陣轉置的方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。