Numpy expand_dims() 函数
Numpy expand_dims() 函数用于向数组添加新的轴或维度。此函数接受一个输入数组和一个 axis 参数,用于指定新维度的插入位置。
此函数生成一个添加了指定 axis 的新数组,可用于调整数组形状以满足某些操作或函数的要求。
例如,扩展维度通常用于将一维数组转换为二维数组,使其兼容广播或矩阵运算。
语法
Numpy expand_dims() 函数的语法如下 -
numpy.expand_dims(a, axis)
参数
以下是 Numpy expand_dims() 函数的参数 -
- a :输入数组。
- axis(int):这是新轴在扩展轴区中的位置。如果输入负整数,则从最后一个轴计数到第一个轴。
返回值
此函数返回一个维度增加一的数组视图。
示例 1
以下是 Numpy expand_dims() 函数的基本示例,该函数通过将一维数组转换为形状为 (1, 3) 的二维数组,在其开头添加一个新轴。-
import numpy as np # 原始一维数组 arr = np.array([1, 2, 3]) # 扩展维度 expanded_arr = np.expand_dims(arr, axis=0) print("原始数组:") print(arr) print("形状:", arr.shape) print(" 扩展后的数组:") print(expanded_arr) print("形状:") print(expanded_arr.shape)
输出
原始数组: [1 2 3] 形状:(3,) 扩展后的数组: [[1 2 3]] 形状: (1, 3)
示例 2
此示例通过更改三维数组的形状从 (2, 2, 2) 变为 (2, 2, 2, 1) −
import numpy as np # 原始三维数组 arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) # 扩展维度 expanded_arr = np.expand_dims(arr, axis=-1) print("原始数组:") print(arr) print("形状:", arr.shape) print(" 扩展数组:") print(expanded_arr) print("形状:") print(expanded_arr.shape)
执行上述代码后,我们得到以下结果
原始数组: [[[1 2] [3 4]] [[5 6] [7 8]]] 形状: (2, 2, 2) 扩展数组: [[[[1] [2]] [[3] [4]]] [[[5] [6]] [[7] [8]]]] 形状:(2, 2, 2, 1)
示例 3
以下示例展示了如何使用 expand_dims() 函数根据需要调整数组的形状和维度来添加新维度 -
import numpy as np # 创建二维数组 x = np.array([[1, 2], [3, 4]]) print('数组 x:') print(x) print(' ') # 在位置 0 添加新轴 y = np.expand_dims(x, axis=0) print('在位置 0 添加新轴的数组 y:') print(y) print(' ') # 打印 x 和 y 的形状 print('x 和y 数组:') print(x.shape, y.shape) print(' ') # 在位置 1 添加新轴 y = np.expand_dims(x, axis=1) print('在位置 1 插入轴后的数组 y:') print(y) print(' ') # 打印 x 和 y 的维数 (ndim) print('x.ndim 和 y.ndim:') print(x.ndim, y.ndim) print(' ') # 打印 x 和 y 的形状 print('x.shape 和 y.shape:') print(x.shape, y.shape)
执行上述代码后,我们得到以下结果
数组 x: [[1 2] [3 4]] 在位置 1 添加新轴的数组 y 0: [[[1 2] [3 4]]] x 和 y 数组的形状: (2, 2) (1, 2, 2) 在位置 1 处插入轴后的 y 数组: [[[1 2]] [[3 4]]] x.ndim 和 y.ndim: 2 3 x.shape 和 y.shape: (2, 2) (2, 1, 2)