目录
在Python中,squeeze()方法用于删除数组中的单一维度。某些情况下,当我们创建一个数组时,可能会出现一些不必要的维度,这些维度对于我们的计算并没有实际价值,这时可使用squeeze()方法将这些单一维度去除。
1. squeeze()方法语法
numpy.squeeze(a, axis=None)
其中,参数a是需要操作的数组,axis是要删除的维度。若不指定axis参数,则squeeze()方法会删除所有长度为1的维度。
2. squeeze()方法使用举例
2.1 例1:删除所有长度为1的维度
import numpy as np
# 创建一个维度为1的数组
arr = np.array([[[1], [2], [3]]])
print("原始数组:")
print(arr)
print("原始数组形状:", arr.shape)
# 使用squeeze()方法删除单一维度
new_arr = np.squeeze(arr)
print("\n去除单一维度后的数组:")
print(new_arr)
print("新数组形状:", new_arr.shape)
运行以上代码后,得到以下结果。
原始数组:
[[[1]
[2]
[3]]]
原始数组形状: (1, 3, 1)
去除单一维度后的数组:
[1 2 3]
新数组形状: (3,)
从运行结果可以看出,原始数组arr的形状为(1, 3, 1),经过squeeze()方法处理后,单一维度被删除,新数组的形状变为了(3,)。
2.2 例2:删除指定的维度
除了简单去除单一维度外,squeeze()方法还可以用来指定删除的维度。例如,当数组中有多个维度为1时,我们可以通过指定axis参数来删除特定的维度。
import numpy as np
# 创建一个多维数组
arr = np.array([[[1], [2], [3]]])
print("原始数组:")
print(arr)
print("原始数组形状:", arr.shape)
# 制定删除的维度
new_arr = np.squeeze(arr, axis=1)
print("\n删除指定维度后的数组:")
print(new_arr)
print("新数组形状:", new_arr.shape)
运行结果如下。
原始数组:
[[[1]
[2]
[3]]]
原始数组形状: (1, 3, 1)
删除指定维度后的数组:
[[[1]
[2]
[3]]]
新数组形状: (1, 3, 1)
在上面的示例中,我们制定了axis参数为1(第二个维度),但是因为该维度不是长度为1的单一维度,所以squeeze()方法并没有删除该维度。因此,最终的数组形状保持不变。