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

Python中如何将单个2x2数组复制为同变量下2个堆叠的2x2数组

报错原因

np.stack()的语法要求第一个参数传入待堆叠数组构成的可迭代对象(列表/元组等),第二个参数是指定堆叠轴的整数值。你写的np.stack(self.concs,self.concs)会把第二个self.concs数组当成轴参数解析,轴参数要求是整数,传入数组自然触发TypeError: only integer scalar arrays can be converted to a scalar index报错。

实现方案

你需要的是形状为(2,2,2)、两个0轴切片都和原2×2数组self.concs完全一致的三维数组,任选以下一种方法即可实现:

  • 修正np.stack传参:把两份原数组包成列表作为第一个参数传入
# 正确的stack写法
res = np.stack([self.concs, self.concs])
  • 用np.repeat实现:适合需要复制N份的场景,无需重复书写原数组名
# 先给原数组增加最外层维度,再沿新维度重复2次
res = np.repeat(self.concs[np.newaxis, :, :], repeats=2, axis=0)
  • 用np.tile实现:直接指定每个维度的重复倍数
# 0轴重复2次,行、列维度保持原长度不重复
res = np.tile(self.concs, (2, 1, 1))

以上三种方法得到的数组结构和你给出的目标完全一致,可以通过print(res.shape)验证输出为(2, 2, 2),打印数组内容就能看到两层完全相同的2×2矩阵。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:36:18