欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python中冒号(:)在切片中的使用

程序员文章站 2022-06-03 08:42:00
...

对于一维数组来说,python原生的list和numpy的array的切片操作都是相同的,记住一个规则: arr_name[start: end: step] 就可以了。

下面是几个特殊的例子:

  • [:]表示复制源列表
  • 负的index表示,从后往前。-1表示最后一个元素。
import numpy as np
data = np.arange(20).reshape(4,5)

#array([[ 0,  1,  2,  3,  4],
#       [ 5,  6,  7,  8,  9],
#       [10, 11, 12, 13, 14],
#       [15, 16, 17, 18, 19]])

data[1,:] #data[i,:] 获取第i行元素 同理data[:,i] 获取第i列元素
#array([5, 6, 7, 8, 9])

data[:,-3:] #获取所有的行中倒数第三个到最后的元素
#array([[ 2,  3,  4],
#       [ 7,  8,  9],
#       [12, 13, 14],
#       [17, 18, 19]])
data[:,:3] #获取所有的行中从0到2的元素(注意时左闭右开)
#array([[ 0,  1,  2],
#       [ 5,  6,  7],
#       [10, 11, 12],
#       [15, 16, 17]])

#取一个数据块
data[0:2,0:3] # 注意,时左闭右开原则
#array([[0, 1, 2],
#       [5, 6, 7]])