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

如何向NumPy三维数组中追加二维零数组以增加矩阵层数?

如何给NumPy三维数组追加二维零数组以增加层数?

你当前的代码直接使用np.append(n, a)会导致数组被扁平化,因为二维数组a(形状(3,3))和三维数组n(形状(1,3,3))维度不匹配,np.append默认会先将所有输入展平后拼接,最终得到一维数组,无法实现增加层数的需求。

正确实现方式

核心是先将二维数组升维为三维数组(形状变为(1,3,3)),再在层数对应的维度(axis=0)上进行拼接,以下是几种可行方法:

方法1:使用np.append并指定axis=0

import numpy as np

# 初始化三维数组
n = np.zeros((1,3,3), np.ubyte)
n[0][0][1] = n[0][1][0] = 1

# 创建二维零数组
a = np.zeros((3,3), np.ubyte)

# 将a升维为(1,3,3),并在axis=0维度追加
n = np.append(n, a[np.newaxis, :, :], axis=0)

print(n)

输出结果:

[[[0 1 0]
  [1 0 0]
  [0 0 0]]

 [[0 0 0]
  [0 0 0]
  [0 0 0]]]

方法2:使用np.concatenate

# 升维后拼接
n = np.concatenate([n, a[np.newaxis, ...]], axis=0)

方法3:使用np.vstack

np.vstack默认在axis=0维度拼接,适合这种层数扩展场景:

n = np.vstack([n, a[np.newaxis, ...]])

关键说明

a[np.newaxis, :, :]或a[np.newaxis, ...]的作用是给二维数组增加一个新维度,让其形状从(3,3)变为(1,3,3),与原数组n的维度结构一致,这样才能在层数维度上完成拼接,得到形状为(2,3,3)的三维数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 23:55:07