np.transpose & np.expand_dims
一、numpy.transpose(a, axes=None)
功能:
对高维数组进行坐标轴上的变换,即进行转置操作。
参数:
a: Numpy输入数组
axes: 如果指定,它必须是包含 [0,1,…,N-1] 排列的元组或列表,其中 N 是 a 的轴数(可以理解为维度)。返回数组的第 i 个轴将对应于axes[i]输入的编号轴。如果未指定,则默认为range(a.ndim)[::-1],这会反转轴的顺序
返回:
dst: 转置后的数组
用线性代数的来表达的话跟下图一样:
说得简单点transpose()的功能就是改变数组中不同维度的位置。
举个例子:
import numpy as np
x = np.ones((1,2,3)) #我们先创建一个三维的数组
我们使用 transpose() 函数交换 x 数组不同维度的位置:
x_temp = np.transpose(x, (1, 0, 2))
很明显,我们可以看到x数组的第0维和第2维交换位置,原本是(1,2,3)格式的数组变成了(2,1,3)格式。
二、numpy.expand_dims(a, axes=None)
功能:
对数组新添加一个维度
参数:
a: Numpy输入数组
axes: 放置新维度(或多个维度)的位置。
返回:
dst: 添加新维度后的数组
例子:
x = np.ones((1,2,3))
x_temp2 = np.expand_dims(x,0) #在0维度插入一个新的维度
x = np.ones((1,2,3))
x_temp2 = np.expand_dims(x,axis=(0, 1)) #axis也可能是一个元组