You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

三维NumPy数组切片操作的运行逻辑及输出维度解析

NumPy三维数组切片原理及运行结果

首先给出修正后可正常运行的代码:

import numpy as np
arr = np.array([[[1,2,3], [4,5,6]], [[7,8,9],[10,11,12]]])
print(arr[0:2, : , 2])

数组结构说明

你定义的arr是三维数组,shape为(2, 2, 3),三个维度的含义分别是:

  • 第0维:共2个二维子数组,索引0对应[[1,2,3], [4,5,6]],索引1对应[[7,8,9], [10,11,12]]
  • 第1维:每个二维子数组包含2行元素
  • 第2维:每行包含3个元素,索引0、1、2分别对应每行的第1、2、3个元素

切片规则说明

arr[0:2, : , 2]中三个位置的参数分别对应三个维度的筛选规则:

  • 0:2:筛选第0维索引从0到1的全部元素(Python切片左闭右开,刚好覆盖所有2个二维子数组)
  • ::筛选第1维的所有行,无过滤
  • 2:固定取第2维索引为2的元素,也就是每行的第三个元素

NumPy切片的维度保留规则为:使用范围切片(包含:)的维度会保留,使用固定整数索引的维度会被压缩。本次切片中第0、1维都是范围切片,保留对应维度,第2维用固定索引筛选,维度被消除,因此最终输出是二维数组。

实际运行输出

[[ 3  6]
 [ 9 12]]

输出的数组shape为(2,2),刚好包含你提到的3、6、9、12四个元素,按维度排列为两行两列。

内容的提问来源于stack exchange,提问作者Sandeep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:45:03