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)