NumPy数组索引方法解析:[2:4, 0:2]如何获取指定元素?
NumPy数组切片索引的工作原理解析
先看给定的二维数组:
import numpy as np arr = np.array([ [ 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25], [26, 27, 28, 29, 30] ])
核心:二维数组的切片索引规则
NumPy二维数组的索引格式是[行选择器, 列选择器],其中用冒号:定义的切片遵循左闭右开原则——包含起始索引对应的元素,不包含结束索引对应的元素。
拆解[2:4, 0:2]的工作逻辑
- 行部分
2:4:选取行索引为2和3的两行(因为结束索引4不包含在内),对应数组里的第三行[11,12,13,14,15]和第四行[16,17,18,19,20]。 - 列部分
0:2:选取列索引为0和1的两列,对应每行的前两个元素。
把行和列的选择组合起来,就一次性提取出了目标元素:
print(arr[2:4, 0:2]) # 输出结果: # [[11 12] # [16 17]]
和你原本思路的对比
你之前想的[2, :2]和[3, :2]确实能分别拿到两行的前两列,但需要手动把两个结果拼起来。而用二维范围切片[2:4, 0:2]是一步到位的连续区间选取,代码更简洁,处理大数组时效率也更高——不需要额外的拼接操作。
内容的提问来源于stack exchange,提问作者Vaibhav
相关产品推荐
相关产品推荐

