本文目錄一覽:
Python表示矩陣的方法分析
Python表示矩陣的方法分析
本文實例講述了Python表示矩陣的方法。分享給大家供大家參考,具體如下:
在c語言中,表示個「整型3行4列」的矩陣,可以這樣聲明:int a[3][4];在python中一不能聲明變量int,二不能列出維數。可以利用列表中夾帶列表形式表示。例如:
表示矩陣 ,可以這樣:
count = 1
a = []
for i in range(0, 3):
tmp = []
for j in range(0, 3):
tmp.append(count)
count += 1
a.append(tmp)
print a
結果:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
但是注意一點:初始化(賦值全部為0時),下面是錯誤的!!
tmp = []
for j in range(0, 3):
tmp.append(0)
a = []
for i in range(0, 3):
a.append(tmp)
print a
結果:
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
原因:這樣的列表tmp為同一個,改變任意行,其他行都會給隨着改變,千萬注意!!,下面正確:
a = []
for i in range(0, 3):
tmp = []
for j in range(0, 3):
tmp.append(0)
a.append(tmp)
print a
用python的numpy創建一個矩陣
使用numpy創建矩陣有2種方法,一種是使用numpy庫的matrix直接創建,另一種則是使用array來創建。首先加載numpy庫,然後分別用上面說的2種方法來分別構建一個4×3的矩陣,如圖
請點擊輸入圖片描述
2
矩陣創建好了,大家看到了2個矩陣長得差不多,是否相等呢?我們用==(python中用==表示等於)來試試看看,如下圖
請點擊輸入圖片描述
3
我們下面看看2個矩陣相乘的結果,可以看到使用matrix創建的矩陣m1乘以自身,結果報錯了:因為矩陣相乘需要滿足一定的條件[1];而使用array創建的矩陣m2乘以自身,結果並沒有報錯,因為這裡用的是Hadamard乘法[2];而m1×m2也報錯了,說明只要有一個是matrix,就不能用Hadamard乘法,如圖所示
請點擊輸入圖片描述
請點擊輸入圖片描述
請點擊輸入圖片描述
4
下面看幾個特殊矩陣[3]:使用np.zeros可以生成零矩陣,使用np.ones可以生成1矩陣,使用np.identity可以生成單位矩陣,使用np.diag可以生成對角矩陣,如圖所示
請點擊輸入圖片描述
請點擊輸入圖片描述
5
最後看看矩陣的行向量和列向量提取方法。例如m1[[0,3]]表示提取矩陣m1的第0行和第3行[4],當然也可以用m1[[True,False,False,True]]來達到同樣的效果,True就是表示對應的行要提取;而m1[:,[-2,-1]]則是提取矩陣的最後2列的列向量,m1[:,[False,True,True]]的一樣可以提取最後2列的列向量,如圖所示
請點擊輸入圖片描述
請點擊輸入圖片描述
END
注意事項
[1]在高等數學或者線性代數等已經學過了當後面的矩陣的行數等於前面矩陣的列數時,2個矩陣才可以相乘
[2]Hadamard指的是2個m×n的矩陣相乘,結果仍然是m×n的矩陣,結果為對應元素的乘積
[3]單位矩陣是特殊的對角矩陣,零(1)矩陣是指元素全部是0(1)的矩陣
[4]矩陣的第一行是從0開始編號的,python中的各種編號基本上都是從0開始的
python 怎麼實現矩陣運算
1.numpy的導入和使用
data1=mat(zeros((
)))
#創建一個3*3的零矩陣,矩陣這裡zeros函數的參數是一個tuple類型(3,3)
data2=mat(ones((
)))
#創建一個2*4的1矩陣,默認是浮點型的數據,如果需要時int類型,可以使用dtype=int
data3=mat(random.rand(
))
#這裡的random模塊使用的是numpy中的random模塊,random.rand(2,2)創建的是一個二維數組,需要將其轉換成#matrix
data4=mat(random.randint(
10
,size=(
)))
#生成一個3*3的0-10之間的隨機整數矩陣,如果需要指定下界則可以多加一個參數
data5=mat(random.randint(
,size=(
))
#產生一個2-8之間的隨機整數矩陣
data6=mat(eye(
,dtype=
int
))
#產生一個2*2的對角矩陣
a1=[
]; a2=mat(diag(a1))
#生成一個對角線為1、2、3的對角矩陣
python中有關矩陣的.I是什麼意思
由 m × n 個數aij排成的m行n列的數表稱為m行n列的矩陣,簡稱m × n矩陣。在數學中,矩陣(Matrix)是一個按照長方陣列排列的複數或實數集合,最早來自於方程組的係數及常數所構成的方陣。這一概念由19世紀英國數學家凱利首先提出。矩陣是高等代數學中的常見工具,也常見於統計分析等應用數學學科中。在物理學中,矩陣於電路學、力學、光學和量子物理中都有應用;計算機科學中,三維動畫製作也需要用到矩陣。 矩陣的運算是數值分析領域的重要問題。將矩陣分解為簡單矩陣的組合可以在理論和實際應用上簡化矩陣的運算。對一些應用廣泛而形式特殊的矩陣,例如稀疏矩陣和准對角矩陣,有特定的快速運算算法。關於矩陣相關理論的發展和應用,請參考矩陣理論。在天體物理、量子力學等領域,也會出現無窮維的矩陣,是矩陣的一種推廣。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/291172.html