切片和索引
一维数组的切片和索引:
与python的切片索引差不多,切片基本格式是arr1[起始值:终止值:步长]下标从0开始,不写起始值默认0开始,不写终止值会运行到最后,不写步长默认是1。切片终止值的下标取不到。
ps:对数组切片生成的还是数组
例:(红笔写的是下标)
切片终止值取不到:(步长不写默认为1不用特地加:)
起始值不写默认从下标0开始:
终止值不写运行到最后,包括最后的数值:
如果要设置步长大于1的切片(同样终止值取不到):
例1:(在下标2和下标6中隔一个选出一个元素)
例2:(在arr1所有数组中隔一个选出一个元素)
以此类推,步长为3就隔两个.....等等
例3:(步长的正负代表方向,如果是负的起始值必须大于终止值(取不到),就会从后往前输出元素)
如果索引是-1:
例:(就表示这个数组从后往前的第一个元素,就是数组的最后一个元素,依次类推,-2就是18...)
可以根据下标修改数:
例:(修改下标2,5之间的数,同样终止值取不到)
多维数组索引和切片
二维数组
ps:以逗号分隔先行后列终止值都取不到
例1:(以逗号分隔,红笔表示下标。[0,1:2]表示下标为第0行且下标列为第0列到第2列(同样终止值取不到)的元素)
例2:([0:2,3]表示下标为第0行到第2行且下标列为第3列的元素)
例3:([:,2]表示所有行中下标列为第2列的元素)
例4:([2,:]表示下标第2行中所有列的元素)
例5:([1:,2:]表示下标从第1行开始的所有行中下标从2开始的所有列的元素)
例6:([1:,]表示下标从第1行开始的所有行的所有列的元素)
例7:([:,2]表示所有行的下标第2列的元素)
例8:([-1]表示最后一行元素,依次类推,-2表示倒数第二行的元素)
例9:([1,3]表示第 下标为1的行且下标为3的列的元素(取单个元素))
例10:([:2,:]表示下标到2结束的所有行的所有列的元素)
例11:([:2]表示下标到2结束的所有行所有列的元素)(列可以省略不写但行不能省略)
例12:(这个逗号分隔的就是行跟列无关)
三维数组
以逗号分隔,第一个数值表示大元素的下标,第二个就是行,第三个就是列
例1:红笔表示下标,[0]表示下标为0的大元素
例2:[0:2,0:2,0:2]表示从下标为0的大元素开始到下标为2的大元素结束(可以越界没有下标为2的大元素就到这个数组最后的大元素结束)的下标从0开始到2结束的行的下标从0开始到2结束的列
例3:[:,:,1]表示从所有大元素的所有行的下标为1的列
例4:[1,1]表示下标为1的大元素的下标为1的行的所有列(列可以省略不写但大元素和行不能不写)
高级索引(取不连续的数)
例1:交叉着取
例2:取从下标1开始的所有行的下标为第0、2、4的列
例3:倒序输出
例4:光行倒序
例5:光列倒序
布尔索引
例1:布尔值和行及列要一一对应,不然会报错
错误示例:
正确例子:[mask,2]的意思是按照布尔值显示下标为2的列(1代表显示索引,0代表忽略不显示)
例2:如果直接比较arr4中那些大于8会显示布尔值,写成底下的格式就会输出arr4中大于8的数
例3:如果有多种条件用&或者|符号:
取两个数组相同位置的元素
只能取两数组下标位置相同且数值相同的元素