NumPy 陣列也可以利用索引和切片來快速查找並並取得陣列中的元素。
下面將分別介紹一維、二維及多維陣列的索引和切片操作。
一維陣列的索引和切片操作與 Python 的列表分常相似。array1 = np.array([1, 2, 3, 4, 5])
使用索引獲取元素。
print(array1[0]) # 1
print(array1[-1]) # 5
切片print(array1[1:4]) # [2, 3, 4]
二維陣列跟一維陣列的查找會稍微有些不同,索引需要遵循「從外到內」的原則。array2 = np.array([[1, 2, 3], [4, 5, 6]])
索引獲取元素print(array2[0, 1]) # 2
列切片print(array2[0, :]) # [1, 2, 3]
行切片print(array2[:, 0]) # [1, 4]
子陣列切片print(array2[1, 1:3]) # [5, 6]
補充說明:「:」代表所有元素。
在多維陣列中,索引和切片的原則依然是「從外到內」。對於三維及以上的陣列,操作時要特別注意順序和維度,越高維越容易混淆。array3 = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
索引獲取元素print(array3[0, 1, 1]) # 4
切片print(array3[:, :, 1]) # [[2, 4], [6, 8]]
像這切片範例就是取最外層陣列的所有元素,次內層陣列的所有元素,最後取最內層陣列的第二個元素。