使用numpy創(chuàng)建矩陣有2種方法,一種是使用numpy庫的matrix直接創(chuàng)建,另一種則是使用array來創(chuàng)建。首先加載numpy庫,然后分別用上面說的2種方法來分別構建一個4×3的矩陣,如圖
創(chuàng)新互聯公司專注于企業(yè)全網營銷推廣、網站重做改版、民樂網站定制設計、自適應品牌網站建設、HTML5、商城網站開發(fā)、集團公司官網建設、成都外貿網站建設公司、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為民樂等各大城市提供網站開發(fā)制作服務。
請點擊輸入圖片描述
2
矩陣創(chuàng)建好了,大家看到了2個矩陣長得差不多,是否相等呢?我們用==(python中用==表示等于)來試試看看,如下圖
請點擊輸入圖片描述
3
我們下面看看2個矩陣相乘的結果,可以看到使用matrix創(chuàng)建的矩陣m1乘以自身,結果報錯了:因為矩陣相乘需要滿足一定的條件[1];而使用array創(chuàng)建的矩陣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表示矩陣的方法:
使用“import numpy”語句導入numpy包。用numpy包的array函數創(chuàng)建一個二維數組,這個二維數組就表示矩陣
示例代碼如下:
執(zhí)行結果如下:
1.numpy的導入和使用
data1=mat(zeros((
)))
#創(chuàng)建一個3*3的零矩陣,矩陣這里zeros函數的參數是一個tuple類型(3,3)
data2=mat(ones((
)))
#創(chuàng)建一個2*4的1矩陣,默認是浮點型的數據,如果需要時int類型,可以使用dtype=int
data3=mat(random.rand(
))
#這里的random模塊使用的是numpy中的random模塊,random.rand(2,2)創(chuàng)建的是一個二維數組,需要將其轉換成#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的對角矩陣