- NumPy 教程
- NumPy - 首页
- NumPy - 简介
- NumPy - 环境
- NumPy 数组
- NumPy - Ndarray 对象
- NumPy - 数据类型
- NumPy 创建和操作数组
- NumPy - 数组创建例程
- NumPy - 数组操作
- NumPy - 从现有数据创建数组
- NumPy - 从数值范围创建数组
- NumPy - 迭代数组
- NumPy - 数组重塑
- NumPy - 数组连接
- NumPy - 数组堆叠
- NumPy - 数组分割
- NumPy - 数组扁平化
- NumPy - 数组转置
- NumPy 索引和切片
- NumPy - 索引和切片
- NumPy - 高级索引
- NumPy 数组属性和操作
- NumPy - 数组属性
- NumPy - 数组形状
- NumPy - 数组大小
- NumPy - 数组步长
- NumPy - 数组元素大小
- NumPy - 广播
- NumPy - 算术运算
- NumPy - 数组加法
- NumPy - 数组减法
- NumPy - 数组乘法
- NumPy - 数组除法
- NumPy 高级数组操作
- NumPy - 交换数组轴
- NumPy - 字节交换
- NumPy - 复制和视图
- NumPy - 元素级数组比较
- NumPy - 数组过滤
- NumPy - 数组连接
- NumPy - 排序、搜索和计数函数
- NumPy - 搜索数组
- NumPy - 数组并集
- NumPy - 查找唯一行
- NumPy - 创建日期时间数组
- NumPy - 二元运算符
- NumPy - 字符串函数
- NumPy - 数学函数
- NumPy - 统计函数
- NumPy - 矩阵库
- NumPy - 线性代数
- NumPy - Matplotlib
- NumPy - 使用 Matplotlib 绘制直方图
- NumPy - NumPy 的 I/O 操作
- NumPy 排序和高级操作
- NumPy - 数组排序
- NumPy - 沿轴排序
- NumPy - 使用花式索引排序
- NumPy - 结构化数组
- NumPy - 创建结构化数组
- NumPy - 操作结构化数组
- NumPy - 字段访问
- NumPy - 记录数组
- Numpy - 加载数组
- Numpy - 保存数组
- NumPy - 将值追加到数组
- NumPy - 交换数组的列
- NumPy - 向数组插入轴
- NumPy 处理缺失数据
- NumPy - 处理缺失数据
- NumPy - 识别缺失值
- NumPy - 删除缺失数据
- NumPy - 填充缺失数据
- NumPy 性能优化
- NumPy - 使用数组进行性能优化
- NumPy - 使用数组进行矢量化
- NumPy - 数组的内存布局
- Numpy 线性代数
- NumPy - 线性代数
- NumPy - 矩阵库
- NumPy - 矩阵加法
- NumPy - 矩阵减法
- NumPy - 矩阵乘法
- NumPy - 元素级矩阵运算
- NumPy - 点积
- NumPy - 矩阵求逆
- NumPy - 行列式计算
- NumPy - 特征值
- NumPy - 特征向量
- NumPy - 奇异值分解
- NumPy - 求解线性方程组
- NumPy - 矩阵范数
- NumPy 元素级矩阵运算
- NumPy - 求和
- NumPy - 求平均值
- NumPy - 求中位数
- NumPy - 求最小值
- NumPy - 求最大值
- NumPy 集合运算
- NumPy - 唯一元素
- NumPy - 交集
- NumPy - 并集
- NumPy - 差集
- NumPy 有用资源
- NumPy 编译器
- NumPy - 快速指南
- NumPy - 有用资源
- NumPy - 讨论
NumPy squeeze() 函数
Numpy 的squeeze()函数用于从数组的形状中删除一维条目。
此函数用于消除大小为 1 的维度,这可以简化数组操作。例如,如果我们有一个形状为 (1, 3, 1, 5) 的数组,通过应用squeeze() 将将其转换为形状为 (3, 5) 的数组,方法是删除单例维度。
此函数采用可选的axis参数来指定要删除的维度,但如果未提供,则会删除所有单例维度。
结果是一个具有较少维度但数据相同的新数组。
语法
Numpy squeeze()函数的语法如下:
numpy.squeeze(a, axis=None)
参数
以下是 Numpy squeeze()函数的参数:
- a(array_like): 这是输入数据,应为数组或类数组对象。
- axis(None 或 int 或 int 元组,可选): 此参数选择形状中单维条目的子集。如果指定了轴,则只会压缩该轴或这些轴。如果未指定轴,则会删除所有单维条目。如果指定的轴的大小不为 1,则会引发错误。
返回值
此函数返回输入数组,但删除了所有或一部分大小为 1 的维度。这不会修改原始数组,而是返回一个新数组。
示例 2
以下是使用 Numpy squeeze()函数的示例。在此示例中,形状为 (1, 3, 1) 的数组 'a' 被压缩以删除所有单维条目,从而得到形状为 (3,) 的数组:
import numpy as np # Original array with shape (1, 3, 1) a = np.array([[[1], [2], [3]]]) print("Original array shape:", a.shape) # Squeezed array squeezed_a = np.squeeze(a) print("Squeezed array shape:", squeezed_a.shape) print("Squeezed array:", squeezed_a)
输出
Original array shape: (1, 3, 1) Squeezed array shape: (3,) Squeezed array: [1 2 3]
示例 2
在此示例中,我们尝试压缩一个非单维轴,即轴 1,这会导致 ValueError,因为轴 1 的大小为 3:
import numpy as np # Original array with shape (1, 3, 1) a = np.array([[[1], [2], [3]]]) print("Original array shape:", a.shape) try: # Attempting to squeeze a non-single-dimensional axis squeezed_a = np.squeeze(a, axis=1) except ValueError as e: print("Error:", e)
输出
Original array shape: (1, 3, 1) Error: cannot select an axis to squeeze out which has size not equal to one
示例 3
以下示例展示了如何使用numpy.squeeze()从数组的形状中删除一维条目:
import numpy as np # Creating a 3D array with shape (1, 3, 3) x = np.arange(9).reshape(1, 3, 3) print('Array X:') print(x) print('\n') # Removing single-dimensional entries from the shape of x y = np.squeeze(x) print('Array Y:') print(y) print('\n') # Printing the shapes of the arrays print('The shapes of X and Y array:') print(x.shape, y.shape)
输出
Array X: [[[0 1 2] [3 4 5] [6 7 8]]] Array Y: [[0 1 2] [3 4 5] [6 7 8]] The shapes of X and Y array: (1, 3, 3) (3, 3)
numpy_array_manipulation.htm
广告