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

如何在Numpy中将列表添加至空数组且生成二维数组而非一维?

嘿,我来帮你搞定这个numpy数组拼接的小问题~ 你之前用np.append()得到一维数组,是因为默认会把输入的数组扁平化处理,想要得到二维的结构,我们可以用这几种方法:

方法一:用numpy.vstack()垂直堆叠

这个方法适合从空数组开始逐步添加行,关键是要把列表转换成二维的行数组,和空数组的维度匹配:

import numpy as np

x = np.empty(0)
l1 = [1, 2, 3]
l2 = [4, 5, 6]

# 把列表转成二维行数组(reshape(1,-1)自动适配列数)
arr_l1 = np.array(l1).reshape(1, -1)
arr_l2 = np.array(l2).reshape(1, -1)

# 垂直堆叠空数组和两个行数组
x = np.vstack([x, arr_l1, arr_l2])
print(x)
# 输出结果:
# [[1 2 3]
#  [4 5 6]]
方法二:给numpy.append()指定axis参数

如果你还是想用append,只要提前把空数组改成二维结构,并且添加时把列表包装成二维数组,再指定按行追加的axis=0就行:

import numpy as np

# 先把空数组设置成0行3列的二维结构
x = np.empty(0).reshape(0, 3)
l1 = [1, 2, 3]
l2 = [4, 5, 6]

# 用[l1]把列表转成二维行数组,指定axis=0按行追加
x = np.append(x, [l1], axis=0)
x = np.append(x, [l2], axis=0)
print(x)
# 输出结果:
# [[1 2 3]
#  [4 5 6]]
方法三:最简洁的直接转换

如果不需要从空数组逐步添加,直接把两个列表放进一个大列表里转成numpy数组就完事了:

import numpy as np

l1 = [1, 2, 3]
l2 = [4, 5, 6]

x = np.array([l1, l2])
print(x)
# 输出结果:
# [[1 2 3]
#  [4 5 6]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 18:32:33