掌握numpy中的newaxis()函数,轻松实现数组维度调整
在NumPy中,newaxis()函数用于为数组增加一个维度。它可以将一维数组转换为二维数组、二维数组转换为三维数组,以此类推。newaxis()函数在构建模型和进行矩阵计算时非常有用。
下面我们来了解如何使用newaxis()函数进行数组维度调整,以及一些常见的使用例子。
首先,我们需要导入NumPy库:
import numpy as np
### 将一维数组转换为二维数组
我们可以使用newaxis()函数将一维数组转换为二维数组。下面是一个例子:
a = np.array([1, 2, 3, 4, 5]) b = a[:, np.newaxis] # 使用newaxis()函数增加一个维度 print(b)
输出结果:
[[1] [2] [3] [4] [5]]
在上述代码中,一维数组a通过[:, np.newaxis]转换成了二维数组b,其中[:, np.newaxis]表示在原数组的第二维度上增加一个长度为1的维度。
### 将二维数组转换为三维数组
同样地,我们可以使用newaxis()函数将二维数组转换为三维数组。下面是一个例子:
c = np.array([[1, 2, 3], [4, 5, 6]]) d = c[:, :, np.newaxis] # 使用newaxis()函数增加一个维度 print(d)
输出结果:
[[[1] [2] [3]] [[4] [5] [6]]]
上述代码中,二维数组c通过[:, :, np.newaxis]转换成了三维数组d。
### 调整数组维度的其他方式
除了使用newaxis()函数,我们还可以使用reshape()函数和expand_dims()函数来调整数组的维度。
reshape()函数可以用来调整数组的形状,将数组转换为指定形状的数组。下面是一个例子:
e = np.arange(1, 7).reshape(2, 3) # 将一维数组转换为二维数组 print(e)
输出结果:
[[1 2 3] [4 5 6]]
在上述代码中,reshape(2, 3)将一维数组转换为了2行3列的二维数组。
另外,我们还可以使用expand_dims()函数在指定位置插入一个新的维度。下面是一个例子:
f = np.array([1, 2, 3, 4, 5]) g = np.expand_dims(f, axis=1) # 在第二个维度插入一个新的维度 print(g)
输出结果:
[[1] [2] [3] [4] [5]]
在上述代码中,expand_dims(f, axis=1)在第二个维度上插入了长度为1的新维度。
通过上述例子,我们可以看到通过使用newaxis()函数、reshape()函数和expand_dims()函数,我们可以很容易地调整数组的维度,以满足不同的计算需求。
