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

如何仅使用NumPy数组实现从空数组追加行构建二维数组?

用NumPy实现动态追加构建二维数组

NumPy数组本身是固定尺寸的,不像Python列表那样能直接动态扩容,但可以通过以下几种方式实现类似列表append的效果:

方法1:使用np.vstack逐行追加

先初始化一个指定列数的空数组,再通过vstack合并新行:

import numpy as np

# 初始化形状为(0, 3)的空数组(3列,0行),指定数据类型为int
arr = np.empty((0, 3), dtype=int)
# 追加第一行
arr = np.vstack([arr, [1, 2, 3]])
# 追加第二行
arr = np.vstack([arr, [4, 5, 6]])

方法2:使用np.concatenate合并数组

和vstack原理类似,需要保证维度对齐:

import numpy as np

# 初始化空数组并调整为(0, 3)的形状
arr = np.array([], dtype=int).reshape(0, 3)
# 追加第一行(注意要把列表转成二维数组)
arr = np.concatenate([arr, np.array([[1, 2, 3]])], axis=0)
# 追加第二行
arr = np.concatenate([arr, np.array([[4, 5, 6]])], axis=0)

更高效的方式:提前初始化数组

如果能提前知道最终数组的尺寸,直接初始化后赋值是最优方案(避免频繁内存复制):

import numpy as np

# 直接创建2行3列的空数组
arr = np.zeros((2, 3), dtype=int)
# 给每行赋值
arr[0] = [1, 2, 3]
arr[1] = [4, 5, 6]

注意:NumPy的动态追加操作本质上是创建新数组并复制原有数据,数据量较大时效率远低于提前初始化,建议优先采用第三种方法。

内容的提问来源于stack exchange,提问作者Harry van Langen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 16:52:04