Numpy学习二:数组的索引与切片

Posted sl0309

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Numpy学习二:数组的索引与切片相关的知识,希望对你有一定的参考价值。

1、一维数组索引与切片
#创建一维数组
arr1d = np.arange(10)
print(arr1d) 

结果:[0 1 2 3 4 5 6 7 8 9]

#数组的索引从0开始,通过索引获取第三个元素
arr1d[2]

结果:2

#切片,左闭右开区间,从索引3开始,直到索引7结束

arr1d[3:8]

结果:array([3, 4, 5, 6, 7])

#数组脚标由右往左是从-1开始,每向左一位脚标数字减1,获取最后一个元素
arr1d[-1] #等价arr1d[9]

结果:9

#将标量赋值给切片,会广播到切片的整个选区
arr1d[3:5] = 10
print(arr1d)

结果:[ 0 1 2 10 10 5 6 7 8 9]

2、二维数组索引与切片

#创建二维数组
arr2d = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
print(arr2d)

结果:[[ 1  2  3  4]
       [ 5  6  7  8]
       [ 9 10 11 12]]

#第一维脚标(索引值)是0的元素是一个数组
arr2d[0]

结果:array([1, 2, 3, 4])

#第一维脚标(索引值)是1,第二维脚标(索引值)是3的元素,可以理解为获取二维数组中第2行第4列的元素
arr2d[1,3]

结果:8

#二维数组切片

多维数组可以按照维度分为多个轴,以二维数组为例,第一维可以用第0轴“axis=0”表示,第二维可以用第1轴“axis=1”表示

技术图片

#沿着axis=0轴方向的切片

arr2d[:2]

结果:array([[1, 2, 3, 4],
             [5, 6, 7, 8]])
 

#只有冒号表示选取整个轴,取第0轴全部,第1轴从脚标1开始取到3前一位,可以理解为取所有行的第2列和第3列数据
arr2d[:,1:3]

结果:array([[ 2,  3],
             [ 6,  7],
             [10, 11]])
 

#沿着第0轴方向从脚标1开始取到最后,沿着第1轴从脚标1开始取到3的前一位
arr2d[1:,1:3]

结果:array([[ 6,  7],
             [10, 11]])













以上是关于Numpy学习二:数组的索引与切片的主要内容,如果未能解决你的问题,请参考以下文章

NumPy学习(索引和切片,合并,分割,copy与deep copy)

python运算学习之Numpy ------ 数组的切片索引与循环遍历条件和布尔数组

NumPy 基础

NumPy 基础

NumPy 基础

02 numpy 索引与切片