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

如何将二维NumPy数组转换为指定结构的三维NumPy数组

NumPy二维数组转指定三维数组实现方案

你需要的转换本质是将原二维数组的每个标量元素,沿新增的第三维度重复3次,将原形状为(3,3)的数组转为形状(3,3,3)的数组,以下是两种可直接运行的实现方式:


方法1:np.repeat(推荐,返回可写数组)

先给原数组新增一个长度为1的第三轴,再沿该轴将每个元素重复3次,生成的结果是独立的可写数组,是最通用的实现方式:

import numpy as np

# 原始数组
a = np.array([[1, 2, 3],
              [2, 3, 4],
              [4, 5, 6]])

# 转换操作
result = np.repeat(a[:, :, np.newaxis], repeats=3, axis=2)

运行后result的输出和你给出的目标结构完全一致:

[[[1 1 1]
  [2 2 2]
  [3 3 3]]

 [[2 2 2]
  [3 3 3]
  [4 4 4]]

 [[4 4 4]
  [5 5 5]
  [6 6 6]]]

方法2:np.broadcast_to(低内存版本,默认返回只读视图)

利用NumPy广播机制直接生成目标形状的视图,不需要拷贝数据,内存占用极低,适合大数组场景。如果需要修改数组元素,追加.copy()转为真实数组即可:

# 生成只读视图,无额外内存开销
result_view = np.broadcast_to(a[:, :, np.newaxis], (3, 3, 3))
# 转为可写的独立数组
result = result_view.copy()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 19:51:18