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

使用Numpy无法打印不同行索引值,遇形状不匹配索引错误

解决NumPy二维数组索引形状不匹配错误

你遇到的IndexError是因为用于索引的两个数组形状不兼容——行索引数组[0,1]是2个元素,列索引数组[3,2,4]是3个元素,NumPy无法将它们广播成相同形状,所以触发报错。

下面根据不同的需求给出对应的解决方案:

情况1:从每行选取对应位置的单个元素

如果需要第0行取第3个元素、第1行取第2个元素,要保证行、列索引数组长度一致:

print(x[np.array([0,1]), np.array([3,2])])
# 输出:[3 7]

情况2:从每行选取多个列的元素

如果要获取第0、1行的第3、2、4列所有元素,或者每行选取不同数量的列,可以用np.ix_函数自动扩展索引形状,使其支持广播:

print(x[np.ix_([0,1], [3,2,4])])
# 输出:
# [[3 2 4]
#  [8 7 9]]

如果是第0行只取第3个元素,第1行取第2、4个元素,也可以用嵌套列表的方式索引:

print(x[[[0], [1]], [[3], [2,4]]])
# 输出:[[3], [7 9]]

情况3:获取分散的单个元素(跨行列)

如果想单独获取第0行第3个、第1行第2个、第1行第4个元素,需要把行索引数组调整为和列索引长度一致:

print(x[np.array([0,1,1]), np.array([3,2,4])])
# 输出:[3 7 9]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:39:16