numpy庫用於矩陣運算,所以一般先導入它。
from numpy import *
import numpy as np
1 矩陣建立
#建立一維陣列
a1=array([1,2,3])
#將陣列轉為矩陣
a1=mat(a1)
輸出a1:matrix([[1, 2, 3]])
當然也可以對矩陣操作:
a1.reshape(3,-1)
這會將矩陣轉為3*x的矩陣,因為只有3個元素,所以這裡x=1。
其他建立矩陣方法:
#建立3×3的0矩陣,zeros函式引數是乙個元組
data1=mat(zeros((3,3)))
#建立4×4的1矩陣,無論是zeros,還是ones都可以設定引數dtype=int/float32修改資料型別,預設是浮點
data2=mat(ones((4,4)))
#random.rand(3,3)隨機生成3×3大小值為0-1之間的陣列
data3=mat(random.rand(3,3))
#隨機生成在0-10之間生成3×3大小的整數矩陣,多加乙個引數可指定下界
data4=mat(random.randint(10,size=(3,3)))
#生成的是1-8之間的,3×5大小的整數矩陣
data5=mat(random.randint(0,10,(4,3)))
#產生乙個2*2的對角矩陣
data6=mat(eye(2,2,dtype=int))
#生成乙個對角線為1、2、3的對角矩陣
a1=[1,2,3];
a2=mat(diag(a1))
2常見矩陣運算
-矩陣相乘
#1×2的矩陣乘以2×1的矩陣,得到1×1的矩陣
#使用matrix,運算子*用於向量計算(叉乘),若是array,運算子*是數量積(點乘)
#另外可用np.dot()函式計算叉乘
a1=mat([1,2])
a2=mat([[1],[2]])
a3=a1*a2
說白了就是1×1+2×2=5。
-矩陣點乘
矩陣對應元素相乘:
a1=mat([1,2])
a2=mat([1,2])
a3=multiply(a1,a2)
輸出:matrix([[1, 4]])
-矩陣求逆和轉置
#求逆
a1=mat(random.randint(0,10,(4,4)))
a2=a1.i
#轉置a1.t
-計算矩陣對應行列的最大、最小值、和
a1=mat(random.randint(0,10,(4,4)))
#列和,這裡得到的是1*2的矩陣
a2=a1.sum(axis=0);
#行和,這裡得到的是3*1的矩陣
a3=a1.sum(axis=1);
#計算第二行所有列的和(python從0開始計數)),這裡得到的是乙個數值
a4=sum(a1[1,:]);
#計算最大、最小值和索引
#先用python內建函式
#計算a1矩陣中所有元素的最大值,這裡得到的結果是乙個數值
a1.max()
#計算第二列的最大值,這裡得到的是乙個1*1的矩陣
a2=max(a1[:,1])
#計算第二行的最大值,這裡得到的是乙個乙個數值
a1[1,:].max()
#使用numpy函式
#計算所有列的最大值,這裡使用的是numpy中的max函式,返回每列的最大值,返回值是乙個行矩陣
np.max(a1,0)
#計算所有行的最大值,返回每列最大值,返回值也是乙個矩陣,且是乙個列矩陣
np.max(a1,1)
#計算所有列的最大值對應在該列中的索引,返回行矩陣及其資料型別
np.argmax(a1,0)
#計算所有行的最大值對應在該行的索引,返回乙個列矩陣及其資料型別
np.argmax(a1,1)
#但若這麼寫,便是計算第二行中最大值對應在改行的索引,返回索引值
np.argmax(a1[1,:])
3 矩陣合併與分解
分割:
a=mat(random.randint(0,10,(4,4)))
#分割第二行第二列後的所有元素
b=a[1:,1:]
合併有倆種方式,按行和按列:
a=mat(ones((3,3))
b=mat(random.randint(0,10,(3,3)))
#按列增加,在列後面合併後增加了行數
c=vstack((a,b))
#按航增加,在行後面增加了列數
d=hstack((a,b))
python 矩陣(mat)操作
from python的numpy庫提供矩陣運算的功能,因此我們在需要矩陣運算的時候,需要匯入numpy的包。from numpy import 匯入numpy的庫函式 import numpy as np 這個方式使用numpy的函式時,需要以np.開頭。由一維或二維資料建立矩陣 from num...
python矩陣操作小例子
因為經常寫for所以感覺有點low而且執行效率不高,慢慢學習改進,這個矩陣操作例子還不錯可以學學。用python實現矩陣的加法運算和乘法運算,寫幾層for迴圈,實現矩陣加法和乘法並不困難,但關鍵是要足夠簡潔,這個可讓我費了不少腦子。先直接上 吧。矩陣表示形式 m a1,a2,a3 a4,a5,a6 ...
python中的矩陣操作
1 矩陣相乘 例 b1 mat 1,2 1 2的矩陣 b2 mat 1 2 2 1的矩陣 b3 b1 b2 print b3 2 矩陣點乘 對應元素相乘 例b1 mat 1,2 b2 mat 1,2 b3 multiply b1,b2 print b3 3 求逆矩陣 例c1 mat eye 2,2 ...