numpy增加维度、删除维度的方法

  • Post category:Python

numpy增加维度、删除维度的方法

在NumPy中,可以使用reshape()函数增加或删除数组的维度,也可以使用squeeze()函数删除长度为1的维度。下面将详细讲解NumPy增加维度、删除维度的方法,包括reshape()函数、squeeze()函数的用法,以及两个示例。

reshape()函数的用法

在NumPy中,可以使用reshape()函数增加或删除数组的维度。reshape()函数的用法如下:

import numpy as np

# 创建一个形状为(2, 3)的二维数组
a = np.array([[1, 2, 3], [4, 5, 6]])

# 将数组重塑为形状为(2, 3, 1)的三维数组
b = a.reshape((2, 3, 1))

# 打印结果
print(a)
print(b)

在上面的示例中,我们首先使用np.array()函数创建了一个二维数组a,然后使用reshape()函数将其重塑为形状为(2, 3, 1)的三维数组,并将结果保存在变量b中。最后,使用print()函数打印出了原数组a和重塑后的b。

需要注意的是,重塑后的数组素个数必须与原数组元素个数相同,否则会报错。

squeeze()函数的用法

在NumPy中,可以使用squeeze()函数删除长度为1的维度。squeeze()函数的用法如下:

import numpy as np

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

# 删除长度为1的维度
b = np.squeeze(a)

# 打印结果
print(a)
print(b)

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

需要注意的是,squeeze()函数只能删除长度为1的维度,如果数组中有多个长度为1的维度需要多次调用squeeze()函数。

示例一:增加维度

import numpy as np

# 创建一个形状为(2, 3)的二维数组
a = np.array([[1, 2, 3], [4, 5, 6]])

# 将数组重塑为形状为(2, 3, 1)的三维数组
b = a.reshape((2, 3, 1))

# 打印结果
print(a)
print(b)

在上面的示例中,我们首先使用np.array()函数创建了一个二维数组a,然后使用reshape()函数将其重塑为形状为(2, 3, 1)的三维数组,并将结果保存在变量b中。最后,使用print()函数打印出了原数组a和重塑后的b。

需要注意的是,重塑后的数组元素个数必须与原数组元素个数相同,否则会报错。

示例二:删除维度

import numpy as np

# 创建一个形状为(2, 3, 1)的三维数组
a = np.array([[[1], [2], [3]], [[4], [5], []]])

# 删除长度为1的维度
b = np.squeeze(a)

# 打印结果
print(a)
print(b)

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

需要注意的是,squeeze()函数只能删除长度为1的维度,如果数组中有多个长度为1的维度需要多次调用squeeze()函数。