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

Python for循环迭代存值如何得到目标三维NumPy数组

问题原因

你当前代码中ar被初始化为Python原生列表,每次for循环生成的二维NumPy数组会作为独立元素追加到这个列表中,最终输出的是包含两个二维数组的列表,和你需要的三维NumPy数组结构不匹配。
另外你代码里的from array import *属于冗余导入,全程没有用到标准库array模块的功能,可以直接删除。

调整方案

方案1:保留原有循环逻辑,追加完成后转换数组类型

只需要在所有元素追加完成后,调用np.array()将存储了所有二维结果的列表转换为三维NumPy数组即可,修改后完整代码如下:

import numpy as np
ar = []

A = np.array([[[1, 2, 3],
               [4, 5, 6],
               [7, 8, 9]],
              [[10, 11, 12],
               [13, 14, 15],
               [16, 17, 18]]])

for x in range(0, 2):
    B = A[x] + 1
    ar.append(B)
# 将列表转换为三维NumPy数组
ar = np.array(ar)
print(ar)

运行后输出结果和你预期完全一致。

方案2:使用NumPy广播机制省略循环

NumPy原生支持对整个数组做逐元素运算,不需要手动写循环切片、追加元素,直接对原数组做+1操作就能直接得到同维度的结果数组,代码更简洁运行效率更高:

import numpy as np

A = np.array([[[1, 2, 3],
               [4, 5, 6],
               [7, 8, 9]],
              [[10, 11, 12],
               [13, 14, 15],
               [16, 17, 18]]])
ar = A + 1
print(ar)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 09:21:34