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

为什么np.meshgrid生成的数组维度比输入参数更高?

原因说明

你遇到的输出和预期不一致的核心原因是:你直接对np.meshgrid的返回整体调用了np.shape,而np.meshgrid的返回值是由多个网格数组组成的列表,不是单个数组。

具体规则:

  • 当你传入N个1D坐标数组给np.meshgrid时,它会返回长度为N的列表,列表中的每个元素都是对应的坐标网格数组,每个网格数组的维度与你传入的坐标数量一致。
  • 当你对Python列表调用np.shape时,numpy会自动将列表转换为高维数组,第一维的长度就是列表的长度(也就是你传入的1D数组的个数),后续维度才是每个网格数组的形状。

第一个例子验证

你传入了3个1D数组:长度分别为5、4、3,使用indexing='ij'时,每个返回的网格数组形状都是你预期的(5,4,3)。
由于np.meshgrid返回了3个这样的数组组成的列表,你对整个列表求np.shape,就会得到(3, 5, 4, 3)的结果。
如果想得到你预期的输出,查看单个网格数组的形状即可:

print(np.shape(grid[0]))
# 输出为 (5, 4, 3)

第二个例子验证

你传入了2个1D数组:长度分别为5、4,每个返回的网格数组形状都是你预期的(5,4)。
由于返回的列表长度为2,对整个列表求np.shape就会得到(2, 5, 4)的结果。
同样查看单个网格数组的形状即可得到预期输出:

print(np.shape(grid[0]))
# 输出为 (5, 4)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:09:03