python10 Numpy陣列切片示例

2021-10-03 12:47:48 字數 2097 閱讀 1621

本文示例了陣列切片的各種情況,可以直觀的看到各種陣列切片格式的處理結果,參考資料為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是從右往左...