索引與切片陣列

NumPy 入門

Izzy Weber

Core Curriculum Manager, DataCamp

1D 陣列索引

array = np.array([2, 4, 6, 8, 10])
array[3]
8
NumPy 入門

2D 元素索引

數獨遊戲中,選取第三列第五行的一個數字

 

 

sudoku_game[2, 4]
6
NumPy 入門

2D 列索引

數獨遊戲中,選取第一列

 

 

sudoku_game[0]
array([0, 0, 4, 3, 0, 0, 2, 0, 9])
NumPy 入門

2D 行索引

數獨遊戲中,選取第四行

 

 

sudoku_game[:, 3]
array([3, 0, 0, 0, 0, 0, 0, 5, 9])
NumPy 入門

1D 陣列切片

array = np.array([2, 4, 6, 8, 10])
array[2:4]
array([6,  8])
NumPy 入門

2D 陣列切片

數獨遊戲中,選取中間九宮格(第 4–6 行與第 4–6 列)

 

 

sudoku_game[3:6, 3:6]
array([[0, 0, 2],
       [0, 0, 7],
       [0, 8, 3]])
NumPy 入門

含步長的切片

數獨遊戲中,只選取中間九宮格的四個角落

 

 

sudoku_game[3:6:2, 3:6:2]
array([[0, 2],
       [0, 3]])
NumPy 入門

排序陣列

排序前: 未排序的數獨遊戲

np.sort(sudoku_game)
array([[0, 0, 0, 0, 0, 2, 3, 4, 9],
       [0, 0, 0, 0, 0, 0, 1, 5, 9],
       [0, 0, 0, 0, 0, 3, 4, 6, 7],
       [0, 0, 0, 0, 0, 2, 6, 7, 8],
       [0, 0, 0, 0, 0, 1, 4, 7, 9],
       [0, 0, 0, 0, 0, 0, 3, 5, 8],
       [0, 0, 0, 0, 0, 0, 1, 5, 6],
       [0, 0, 0, 0, 3, 5, 6, 8, 9],
       [0, 0, 0, 0, 1, 2, 3, 4, 9]])
NumPy 入門

軸的順序

 

圖示顯示 axis 0 沿著列方向,axis 1 沿著行方向

 

圖示顯示數字 1 的形狀像一個欄

NumPy 入門

依軸排序

np.sort(sudoku_game)
array([[0, 0, 0, 0, 0, 2, 3, 4, 9],
       [0, 0, 0, 0, 0, 0, 1, 5, 9],
       [0, 0, 0, 0, 0, 3, 4, 6, 7],
       [0, 0, 0, 0, 0, 2, 6, 7, 8],
       [0, 0, 0, 0, 0, 1, 4, 7, 9],
       [0, 0, 0, 0, 0, 0, 3, 5, 8],
       [0, 0, 0, 0, 0, 0, 1, 5, 6],
       [0, 0, 0, 0, 3, 5, 6, 8, 9],
       [0, 0, 0, 0, 1, 2, 3, 4, 9]])
np.sort(sudoku_game, axis=0)
array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 2, 0, 0, 2, 1, 0, 1],
       [0, 4, 3, 0, 0, 3, 2, 0, 3],
       [0, 5, 4, 3, 1, 7, 3, 4, 5],
       [1, 7, 5, 5, 6, 8, 4, 8, 7],
       [6, 9, 6, 9, 8, 9, 6, 9, 9]])
NumPy 入門

一起來練習吧!

NumPy 入門

Preparing Video For Download...