Python/numpy array slicing

来自菜鸟教程
跳转至:导航、​搜索

<languages />

NumPy数组切片

切片数组

python中的切片意味着将元素从一个给定的索引带到另一个给定的索引。

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

我们还可以定义步骤,如下所示: [ start : end : step ] .

如果不通过,则将其视为0

如果我们不通过,则在该维度上考虑其数组长度

如果我们不通过步骤,则将其视为1

从以下数组中将元素从索引1切片到索引5:

  import numpy as np

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

print(arr[1:5])

注意: 结果 includes 起始索引,但是 excludes 结束索引。


将元素从索引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])

STEP

使用 step 确定切片步骤的值:

将所有其他元素从索引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])

注意: 记住这一点 second element 索引为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])