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

调用np.zeros()报错无法将多维形状解释为数据类型该如何修复

问题原因

np.zeros() 函数的参数定义为 np.zeros(shape, dtype=float, order='C'),其中第一个入参shape要求是表示输出数组维度的元组:

  • 你直接写 np.zeros(3, 2) 时,会被函数识别为 shape=3、dtype=2,第二个参数2被当作数据类型参数解析,自然触发类型错误。
  • 你写的 np.zeros(3,) 可以正常运行,是因为末尾的逗号会把3,隐式识别为单元素元组,等价于np.zeros((3,)),没有传入第二个dtype参数时会使用默认的float类型,所以可以正常返回长度为3的一维全0数组。
修复方法

如果你想要得到3行2列的全0数组,把维度参数用括号包裹为元组传入即可:

print(np.zeros((3, 2)))

输出结果为:

[[0. 0.]
 [0. 0.]
 [0. 0.]]

如果你预期的是你示例中给出的3行3列全0数组,传入对应维度的元组即可:

print(np.zeros((3, 3)))

输出结果和你预期的一致:

[[0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:18:00