如何对numpy二维数组索引?切片array[x:y:i, t:n:m]各参数含义是什么
NumPy 二维数组切片索引规则说明
NumPy 多维数组的切片索引按维度区分,二维数组的切片语法array[x:y:i, t:n:m]中,逗号用来分隔两个维度的切片规则,第一个维度对应行,第二个维度对应列,每个维度的切片都遵循起始:结束:步长的通用结构,适用左闭右开的取值规则。
行维度切片 x:y:i 各参数含义
x:行索引起始值,默认从0开始计数第一行,省略该参数时默认从第0行开始取y:行索引结束值,取值时不包含索引为y的行,省略该参数时默认取到最后一行(8×8数组对应第7行)i:行取值步长,默认值为1,也就是逐行连续取值;步长为2时每隔一行取一次,步长为负数时倒序取行
列维度切片 t:n:m 各参数含义
t:列索引起始值,默认从0开始计数第一列,省略该参数时默认从第0列开始取n:列索引结束值,取值时不包含索引为n的列,省略该参数时默认取到最后一列m:列取值步长,默认值为1,步长为负数时倒序取列
示例参考(基于8×8数组)
先创建测试用的8×8数组:
import numpy as np # 生成元素为0~63的8行8列数组 arr = np.arange(64).reshape(8,8)
如果执行arr[2:7:2, 1::3]:
- 行维度:从第2行开始,到第7行结束(不包含7),步长为2,最终取第2、4、6行
- 列维度:从第1列开始,取到最后一列,步长为3,最终取第1、4、7列
- 最终得到的是3行3列的结果数组
注意:如果参数为负数,代表从数组末尾倒序计数,比如
-1对应最后一行/列,arr[::-1, :]的效果就是把原数组的行顺序完全反转。
内容的提问来源于stack exchange,提问作者J French
相关产品推荐
相关产品推荐

