详解Numpy扩充矩阵维度(np.expand_dims, np.newaxis)和删除维度(np.squeeze)的方法

  • Post category:Python

详解Numpy扩充矩阵维度(np.expand_dims,np.newaxis)和删除维度(np.squeeze)的方法

在Numpy中,我们可以使用np.expand_dims()和np.newaxis来扩充矩阵的维度,使用np.squeeze()来删除矩阵的维度。这些函数可以帮助我们更方便地处理多维数组。

np.expand_dims()和np.newaxis

np.expand_dims()函数可以在指定的位置插入一个新的维度,从而扩充矩阵的维度。np.newaxis是一个特殊的常量,可以用来表示新的维度。下面是一个示例:

import numpy as np

# 创建一个二维数组
a = np.array([[1, 2], [3, 4]])

# 在第三个维度插入一个新的维度
b = np.expand_dims(a, axis=2)

# 打印结果
print(b.shape)

在上面的例中,我们首先创建了一个二维数组a,然后使用np.expand_dims()函数在第三个维度插入了一个新的维度,并将结果保存在变量b中。最后,使用print()函数打印出了结果。

np.squeeze()

np.squeeze()函数可以删除矩阵中的维度,从而减少矩阵的维度。下是一个示例:

import numpy as np

# 创建一个三维数组
a = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])

# 删除第三个维度
b = np.squeeze(a, axis=2)

# 打印结果
print(b.shape)

在上面的示例中,我们首先创建了一个三维a,然后使用np.squeeze()函数删除了第三个维度,并将结果保存在变量b中。最后,使用print()函数打印出了结果。

np.expand_dims()和np.newaxis的区别

np.expand_dims()和np.newaxis都可以用来扩充矩阵的度,但它们的使用方式略有不同。np.newaxis是一个特殊的常量,可以用来表示新的维度,而np.expand_dims()函数则需要指定要插入的位置。下面是一个示例:

import numpy as np

# 创建一个二维数组
a = np.array([[1, 2], [3,4]])

# 使用np.newaxis在第三个维度插入一个新的维度
b = a[:, :, np.newaxis]

# 使用np.expand_dims()在第三个维度插入一个新的维度
c = np.expand_dims(a, axis=2)

# 打印结果
print(b.shape)
print(c.shape)

在上面示例中,我们首先创建了一个二维数组a,然后使用np.newaxis在第三个维度插入了一个新的维度,并将结果保存在变量b中。接着,我们使用np.expand_dims()函数在第三个维度插入了一个新的维度,并结果保存在变量c中。最后,使用print()函数打印出了结果。

综上所述,np.expand_dims()和np.newaxis可以用来扩矩阵的维度,np.squeeze()可以用来删除矩阵的维度。这些函数可以帮助我们更方便地处理多维数组。