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

Python:如何将列表添加到NumPy数组并实现迭代新增列表

解决方案

NumPy数组为固定大小结构,频繁追加操作性能较差,迭代添加场景优先使用Python列表作为临时容器,所有添加操作完成后再转为NumPy数组。

基础实现(匹配当前输出需求)

首先修正代码中list作为变量名的问题,该名称为Python内置类型名,作为变量使用会覆盖原有功能:

import numpy as np

# 修正变量命名
my_list = [1, 2, 3]
origin_arr = np.array([3, 4, 5, 6])

# 先存入Python列表容器
container = [my_list, origin_arr.tolist()]
# 转为NumPy数组,因两个子序列长度不同,指定dtype为object
result = np.array(container, dtype=object)
print(result)

输出结果符合预期:

[[1 2 3]
 [3 4 5 6]]

迭代添加场景实现

多次迭代添加时优先用Python列表缓存数据,避免频繁操作NumPy数组带来的内存开销:

import numpy as np

# 初始化容器,存入初始数组
container = []
init_arr = np.array([3,4,5,6])
container.append(init_arr.tolist())

# 模拟迭代添加逻辑
for i in range(10):
    # 此处替换为每次迭代生成的新列表
    new_list = [i, i+1, i+2]
    container.append(new_list)

# 所有添加完成后统一转成NumPy数组
final_arr = np.array(container, dtype=object)

直接操作NumPy数组追加的方案(非高频场景可用)

如果确实需要直接对NumPy数组做追加,可使用np.append方法,注意维度匹配:

import numpy as np

my_list = [1,2,3]
origin_arr = np.array([3,4,5,6], dtype=object)
# 先将原数组转为二维结构
origin_arr = origin_arr.reshape(1, -1)
# 沿0轴追加新元素,新元素需要匹配维度
result = np.append(origin_arr, [my_list], axis=0)
print(result)

额外注意事项

  • 若后续要添加的所有子序列长度都一致,无需指定dtype=object,直接转换即可得到数值型二维数组,运算效率更高
  • 非必要不建议高频调用NumPy的追加类方法,同等数据量下,先操作Python列表的性能比直接操作NumPy数组高1~2个数量级

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:36:00