文章目录
- 假设有一个3维数组: import numpy as np arr = np.random.rand(2, 3, 4) # 形状为 (2, 3, 4) 获取所有第一维和第二维的元素,第三维取第0列: arr[…, 0] # 等价于 arr[:, :, 0] 输出形状为 (2, 3)。 获取所有第二维和第三维的元素,第一维取第1个: arr[1, …] # 等价于 arr[1, :, :] 输出形状为 (3, 4)。
- 对于4维数组 arr = np.random.rand(2, 3, 4, 5): 取所有第三维和第四维的元素,第一维和第二维取第0个: arr[0, 0, …] # 等价于 arr[0, 0, :, :] 输出形状为 (4, 5)。
- 取第一维全部,第二维的第1到末尾,第三维每隔2个取一个: arr[…, 1::2] # 等价于 arr[:, :, 1::2]
目录
- 基本概念
- 语法规则
- 示例演示
- 示例1:基本用法
- 示例2:更高维度
- 示例3:混合使用
- 常见错误
- 实际应用场景
NumPy中的省略号(...)用于简化多维数组的切片操作,表示“所有未指定的轴”。当处理高维数组时,可以避免显式写出多个连续的冒号(:)。
省略号的使用规则如下:
...会自动扩展为多个:,以匹配数组的维度。- 可以与其他切片符号(如整数索引、普通切片
start:stop:step)混合使用。 - 只能在一个切片中出现一次。
假设有一个3维数组:
import numpy as np arr = np.random.rand(2, 3, 4) # 形状为 (2, 3, 4)
获取所有第一维和第二维的元素,第三维取第0列:
arr[..., 0] # 等价于 arr[:, :, 0]
输出形状为 (2, 3)。
获取所有第二维和第三维的元素,第一维取第1个:
arr[1, ...] # 等价于 arr[1, :, :]
输出形状为 (3, 4)。
对于4维数组 arr = np.random.rand(2, 3, 4, 5):
取所有第三维和第四维的元素,第一维和第二维取第0个:
arr[0, 0, ...] # 等价于 arr[0, 0, :, :]
输出形状为 (4, 5)。
取第一维全部,第二维的第1到末尾,第三维每隔2个取一个:
arr[..., 1::2] # 等价于 arr[:, :, 1::2]
- 重复使用省略号:
arr[..., ...] 会导致语法错误。
- 维度不匹配:若省略号扩展后的切片维度超过数组维度,会报错。
arr[..., ...] 会导致语法错误。
省略号特别适合处理高维数组(如图像数据、时间序列等),避免冗长的切片代码。例如,对形状为 (batch, height, width, channels) 的图像数据,若要操作所有通道:
images[..., :3] # 取前3个通道
通过合理使用省略号,可以显著提升代码的可读性和简洁性。
到此这篇关于NumPy中使用省略号进行切片的实现示例的文章就介绍到这了,更多相关NumPy 省略号切片内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
您可能感兴趣的文章:
- 解决python 输出是省略号的问题
- 在Python中Dataframe通过print输出多行时显示省略号的实例
- 浅析Python pandas模块输出每行中间省略号问题
- 使用IPython或Spyder将省略号表示的内容完整输出
- Python3中省略号(…)用法介绍
- Python 中省略号对象的使用
- Python中的省略号(Ellipsis)赋值方式详解