Numpy入門 矩陣(二次元矩陣)

應用篇

這個文章要介紹的是如何使用numpy來做二次元的矩陣。

二次元矩陣

np.array的參數中只要指定二次元的list我們就可以做出二次元的矩陣。舉例來說,如果要製作3 x 3的矩陣(三行三列)代碼會寫成下面這樣子。

import numpy as np

x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(x)
#[[1 2 3]
  [4 5 6]
  [7 8 9]]

取得矩陣內容

接著我們來試試看如何取得矩陣內容。

取得內容

import numpy as np

x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(x[0, 2])  # 取得第1行第3列的3
print(x[2, 0])  # 取得第3行第1列的7

Slicing

Slicing是比較特別的取得內容的方式。例如我們要從3×3的矩陣之中,取得其中的2×2的矩陣的時候,可以寫成下面的代碼。

import numpy as np

x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(x[0:2, 0:2]) 
#[[1 2]
  [4 5]]


print(x[1:3, 1:3])
#[[5 6]
  [8 9]]

當然也不一定要取得2×2的矩陣,也可以取得1×2或是2×1等等,這邊就只要將代碼x[0:2, 0:2]中間的數字修改成其他數字就可以了。

取得特定行

只要指定行的編號,我們就可以取得特定的行的內容了。

import numpy as np

x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(x[0]) #取得第一行
# [1 2 3] 
print(x[2]) #取得第三行
# [7 8 9]

取得特定列

因為可以使用Slicing,所以只要把行全部改成“ : ”(冒號),就可以指定要取得哪一列的內容了。

import numpy as np

x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(x[:, 0])  #取得第一列
#[1 4 7]
print(x[:, 2])  #取得第三列
#[3 6 9]

留言