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

为何二维NumPy数组无法对axis 1进行索引?索引越界问题解析

为什么二维数组arr[1, 0]会触发索引错误?

这是个特别容易搞混的NumPy索引误区,我来给你理清楚:

首先,先看你创建的数组实际结构:

import numpy as np
arr = np.array([1, 2, 3, 4, 5], ndmin=2)
print(arr)
# 输出是 [[1 2 3 4 5]]

它的形状是(1, 5),意思是:

  • 轴0(第一个维度):只有1个元素(就是外层的那个列表[1,2,3,4,5])
  • 轴1(第二个维度):这个内层列表有5个元素

你写的arr[1, 0],NumPy会把它解析成:取轴0的第1个元素,再取这个元素里轴1的第0个元素。但轴0的大小只有1,合法索引只能是0,所以直接触发了IndexError——跟你想操作轴1没关系,是第一个索引就超出轴0的范围了。

如果要获取轴1的第一个元素,正确的写法是:

print(arr[0, 0])  # 输出 1

拆解一下:

  1. arr[0]先拿到轴0的唯一元素:[1,2,3,4,5]
  2. 再用, 0取这个元素里轴1的第0个位置,就是1

再补充个验证小技巧:你可以打印arr[0]看看,它就是轴0对应的那个一维数组,这时候再对它索引就是操作轴1了,比如arr[0][2]也能拿到3,和arr[0,2]效果一样。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 13:57:39