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

謹慎使用Python進行矩陣計算解析

 更新時間:2023年08月22日 14:11:35   作者:兔子愛讀書  
這篇文章主要介紹了使用Python進行矩陣計算原理解析,真正的單位矩陣,只有對角線元素為1,其他元素為0,用 np.identity(N) 生成單位矩陣,需要的朋友可以參考下

使用Python進行矩陣計算原理解析

矩陣乘法:

左乘:設(shè)A為m*p的矩陣,B為p*n的矩陣,那么稱m*n的矩陣C為矩陣A與B的乘積,記作C=AB,稱為A左乘以B。

左乘是做行變換;

用對角陣左乘一個矩陣,就是用對角陣的對角元分別乘這個矩陣的對應(yīng)各行;

右乘:設(shè)A為m*p的矩陣,B為p*n的矩陣,那么度稱m*n的矩陣C為矩陣A與B的乘積,記作版C=AB,稱為B右乘以A。

右乘是做列變換;

用對角陣右乘一個矩陣,就是用對角陣的對角元分別乘這個矩陣的對應(yīng)各列。

謹慎使用python的numpy進行矩陣計算,理由如下:

(1)如果通過numpy包進行矩陣計算,可能把數(shù)組誤認為矩陣!

比如numpy.diag([1,2,3]),返回是對角矩陣的形式,你以為是矩陣,其實是數(shù)組!

當你發(fā)現(xiàn)所有矩陣乘法都變成數(shù)組乘法的時候,很恐怖的一件事!

(2)如果你一定要用numpy,慎用星號*表示乘法!

如果A和B都是數(shù)組,A*B是數(shù)組乘法(對應(yīng)元素相乘),返回數(shù)組;

如果A和B中有一個是矩陣,A*B默認變成矩陣運算(行列式相乘),返回矩陣;

(3)如果你一定要用numpy,千萬不要用1表示單位矩陣;

1-A,如果A是數(shù)組,這里的1默認為全1數(shù)組(非單位矩陣的形式);

1-A,如果A是矩陣,這里的1默認為全1矩陣(非單位矩陣的形式);

真正的單位矩陣,只有對角線元素為1,其他元素為0,用np.identity(N)生成單位矩陣;

(4)np.dot(A, B) 是做矩陣運算,但是返回值卻是數(shù)組!

舉個例子:在python中,矩陣與數(shù)組采用np.dot()計算時,雖然是矩陣計算,但是所得結(jié)果均為一個數(shù)組;

數(shù)組在前時,可按照將數(shù)組看成1行n列的矩陣,與矩陣相乘,可得計算結(jié)果。但需注意計算結(jié)果依然只是數(shù)組,及其shape為(k,)形式,而不是(1,k);

附上代碼供理解:

import numpy as np
a = np.diag([1,2,3])
b = np.diag([4,5,6])
c = np.array([[0.1,0.2,0.3],[0.4,0.5,0.6],[0.7,0.8,0.9]])
print("\n區(qū)分 h_stack 和 column_stack")
print(np.hstack((a, b)))
print(np.column_stack((a, b)))
print("\n區(qū)分 數(shù)組乘法 和 矩陣乘法")
print(type(a*c))
print(a*c)
print(type(a.dot(c)))
print(a.dot(c))   # 雖然是矩陣乘法,但返回值為數(shù)組
print("\n區(qū)分 全1數(shù)組 和 單位矩陣")
print(type(1-a))
print(1-a)
print(type(np.identity(3)-a))
print(np.identity(3)-a)
print("\n數(shù)組乘法:(全1數(shù)組-a)*對角數(shù)組 = (單位數(shù)組-a)*對角數(shù)組")
print((1-a)*b)
print((np.diag([1,1,1])-a)*b)
print("\n矩陣乘法:全1矩陣x對角數(shù)組) != 單位數(shù)組x對角數(shù)組)")
print((1-a).dot(b))
print(b.dot(1-a))
print(np.dot(1-a, b))
print(np.dot(b, 1-a))
print("\n對角數(shù)組 x 數(shù)組 = 兩個數(shù)組對角元素相乘")
print(type(a*c))
print(a*c)
print("\n對角數(shù)組 x 矩陣 = 對角陣的對角元分別乘這個矩陣的對應(yīng)各行")
d = np.mat(c)
print(type(a*d))
print(a*d)

到此這篇關(guān)于謹慎使用Python進行矩陣計算解析的文章就介紹到這了,更多相關(guān)Python 矩陣計算內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論