📜  Python中的 numpy.squeeze()(1)

📅  最后修改于: 2023-12-03 14:46:36.687000             🧑  作者: Mango

Python中的numpy.squeeze()

numpy.squeeze()函数用于从数组的形状中删除单维度条目。当我们处理数据时,有时候可能会得到包含单维度条目的数组,但是这些单维度并不实际提供任何有用的信息。在这种情况下,我们可以使用squeeze()函数来去除这些单维度,并将数组转换为更简洁的形式。

语法
numpy.squeeze(a, axis=None)
参数
  • a: 输入的数组。
  • axis: 指定需要去除的单维度的轴,如果未提供则去除所有长度为1的单维度。
返回值

返回一个经过去除单维度的新数组。

示例
import numpy as np

# 1. 去除单维度
arr1 = np.array([[[0], [1], [2]]])
print(np.squeeze(arr1))  # 输出: [[0], [1], [2]](1个维度被去除)

# 2. 通过axis参数指定去除的轴
arr2 = np.arange(6).reshape(1,2,1,3,1)
print(np.squeeze(arr2, axis=2).shape)  # 输出: (1, 2, 3, 1)(第2个维度被去除)

# 3. 未指定axis参数,默认去除所有长度为1的单维度
arr3 = np.array([[1], [2], [3]])
print(np.squeeze(arr3).shape)  # 输出: (3,)(所有长度为1的维度被去除)

以上示例展示了numpy.squeeze()函数的不同用法。你可以根据你的需求来选择是否指定axis参数来控制去除的轴,或者直接使用默认方式一次性去除所有长度为1的单维度。

注意:虽然numpy.squeeze()函数返回一个新数组,但是在内存中它们公用同一份数据。因此,在处理大规模数据时,要注意不要对原始数据或者压缩后的数据进行不必要的修改。