如何使用NumPy将二维数组克隆扩展为三维数组?
将二维NumPy数组克隆为指定三维数组的实现方法
先明确原数组定义:
import numpy as np arr = np.array([[1,2], [2,3], [5,6]])
一、使用现成NumPy函数直接实现
有两种常用函数可以快速完成需求:
1. np.tile() 函数
tile 可以按指定次数重复数组结构,直接满足需求:
bb = np.tile(arr, (3, 1, 1)) print(bb)
输出结果:
[[[1 2] [2 3] [5 6]] [[1 2] [2 3] [5 6]] [[1 2] [2 3] [5 6]]]
参数 (3,1,1) 表示在原数组的第0轴重复3次,第1、2轴保持原结构不变。
2. np.expand_dims() + np.repeat() 组合
先给原数组扩展维度,再在新维度上重复:
# 给原数组新增第0轴,形状变为 (1, 3, 2) arr_expanded = np.expand_dims(arr, axis=0) # 在第0轴上重复3次,得到目标三维数组 bb = np.repeat(arr_expanded, 3, axis=0)
二、多步骤手动实现(无专用函数)
如果不想用专用函数,也可以通过基础操作完成:
rows, cols = arr.shape # 创建目标形状的空数组 bb = np.empty((3, rows, cols)) # 循环将原数组赋值到每个位置 for i in range(3): bb[i] = arr
内容的提问来源于stack exchange,提问作者user988575
相关产品推荐
相关产品推荐

