欢迎访问宙启技术站
智能推送

掌握numpy中的newaxis()函数,轻松实现数组维度调整

发布时间:2023-12-24 10:45:06

在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()函数,我们可以很容易地调整数组的维度,以满足不同的计算需求。