NumPy 数组切片

切片数组

在 Python 中,切片意味着从一个给定的索引到另一个给定的索引中取出元素。

我们像这样传递切片而不是索引:[start:end]

我们还可以定义步长,像这样:[start:end:step]

如果我们不传递 start,它被视为 0。

如果我们不传递 end,它被视为该维度数组的长度。

如果我们不传递 step,它被视为 1。

实例

对以下数组中从索引 1 到索引 5 的元素进行切片:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7])

print(arr[1:5])

亲自试一试

注意:结果包括起始索引,但不包括结束索引。

实例

切片从索引 4 到数组末尾的元素:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7])

print(arr[4:])

亲自试一试

实例

对从开头到索引 4(不包括)的元素进行切片:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7])

print(arr[:4])

亲自试一试

负切片

使用减号运算符来引用从末尾开始的索引:

实例

从倒数索引 3 到倒数索引 1 进行切片:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7])

print(arr[-3:-1])

亲自试一试

步长

使用步长值来确定切片的步长:

实例

从索引 1 到索引 5 返回每隔一个元素:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7])

print(arr[1:5:2])

亲自试一试

实例

从整个数组中返回每隔一个元素:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7])

print(arr[::2])

亲自试一试

切片二维数组

实例

从第二个元素开始,切片索引 1 到索引 4(不包括)的元素:

import numpy as np

arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])

print(arr[1, 1:4])

亲自试一试

注意:请记住,第二个元素的索引为 1。

实例

从两个元素中,返回索引 2:

import numpy as np

arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])

print(arr[0:2, 2])

亲自试一试

实例

从两个元素中,切片索引 1 到索引 4(不包括),这将返回一个二维数组:

import numpy as np

arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])

print(arr[0:2, 1:4])

亲自试一试