本文示例了陣列切片的各種情況,可以直觀的看到各種陣列切片格式的處理結果,參考資料為numpy陣列切片操作。
1.一維陣列切片:
(1)正索引切片:
import numpy as np
# 一維陣列
a = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
# 一維陣列切片
#1.索引為5的元素
a1 = a[5]
print(a1)
"""5
"""# 2.索引為5至最末的切片
a2 = a[5:]
print(a2)
"""[5 6 7 8 9]
"""# 3.索引為0至5的切片
a3 = a[: 5]
print(a3)
"""[0 1 2 3 4]
"""# 4.索引為5至7的切片
a4 = a[5: 8]
print(a4)
"""[5 6 7]
"""# 5.索引為1至7間隔為2的切片
a5 = a[1: 8: 2]
print(a5)
"""[1 3 5 7]
"""
(2)負索引切片:
正索引和負索引的相互關係如下圖所示。
# 6.索引為-1的元素
a6 = a[-1]
print(a6)
"""9
"""# 7.索引為-10到最末的切片
a7 = a[-10: ]
print(a7)
"""[0 1 2 3 4 5 6 7 8 9]
"""# 8.索引為首元素至-6的切片
a8 = a[: -5]
print(a8)
"""[0 1 2 3 4]
"""# 9.索引為-5至-2的切片
a9 = a[-5: -1]
print(a9)
"""[5 6 7 8]
"""# 10.索引為-10至-6間隔為2的切片
a10 = a[-10: -5: 2]
print(a10)
"""[0 2 4]
"""# 11.索引為-1到-9,間隔為-2的切片
a11 = a[-1: -10: -2]
print(a11)
"""[9 7 5 3 1]
"""
2.二維陣列切片:
對二維陣列做切片時,如array1[1: 3, 2: 5],前面的[1:3]是對行進行操作,[2: 5]對列進行操作。需要注意的是當對行切片不對列元素進行操作時可以寫作[1:3],當對列切片不需要對行進行操作時格式為[:, 2: 5]([, 2:5]的形式是錯誤的)。
# 二維陣列
b = np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5]])
# 二維陣列切片
# 1.切片陣列的行,對索引為0至0的行切片
b1 = b[0: 1]
print(b1)
"""[[1 2 3]]
"""# 2.切片陣列的行,對索引為1至最末的行切片
b2 = b[1:]
print(b2)
"""[[2 3 4]
[3 4 5]]
"""# 3.對索引為1至最末的行,索引為1至最末的列元素切片
b3 = b[1:, 1:]
print(b3)
"""[[3 4]
[4 5]]
"""# 4.對索引為0至1的行,索引為0至1的列元素切片
b4 = b[0: 2, 0: 2]
print(b4)
"""[[1 2]
[2 3]]
"""# 5.索引為0至1的列切片
b5 = b[:, 0: 2]
print(b5)
"""[[1 2]
[2 3]
[3 4]]
"""
NumPy 教程(第 10 章) 陣列迭代
numpy 迭代器物件 numpy.nditer 提供了一種靈活訪問乙個或者多個陣列元素的方式,迭代器最基本的任務的可以完成對陣列元素的訪問 使用 arange 函式建立乙個 2x3 陣列,並使用 nditer 對它進行迭代 in 1 import numpy as np in 2 num np.a...
NumPy陣列廣播規則 python
numpy陣列遵循一組嚴格的規則,這組規則決定了兩個陣列之間的操作 1 如果兩個陣列的維度不同,小維度陣列將在最左邊補1 2 如果兩個陣列任何乙個維度都不匹配,陣列會擴充套件小的維度來和較大的那個陣列維度匹配 3 兩個陣列在任何乙個維度上都不匹配並且沒有任何乙個維度等於1,會引發異常 a np.ar...
Python中numpy陣列切片
python中符合切片並且常用的有 列表,字串,元組。下面那列表來說明,其他的也是一樣的。格式 開頭 結束 步長 開頭 當步長 0時,不寫預設0。當步長 0時,不寫預設 1 結束 當步長 0時,不寫預設列表長度加一。當步長 0時,不寫預設負的列表長度減一 步長 預設1,0 是從左往右走,0是從右往左...