如何从形状为(10,10,500)的NumPy图像数组批量提取指定索引图像?
批量提取NumPy数组中指定索引的图像
当然可以直接批量提取,不用循环——NumPy的高级索引就能搞定这个需求,直接对最后一维传入索引数组即可。
具体操作
假设你的数组是images,索引数组是indexes,直接用以下代码就能批量提取:
import numpy as np # 示例数组:10×10×500的随机数组 images = np.random.rand(10, 10, 500) indexes = np.array([201, 203, 208]) # 批量提取指定索引的图像 selected_images = images[..., indexes]
结果说明
- 提取后的
selected_images形状为(10, 10, 3),对应你指定的3张10×10图像 - 这种方式利用NumPy的广播和高级索引机制,内部已做优化,比手动循环高效得多
如果你的数组维度顺序不同(比如是(500,10,10)),只需要调整索引位置即可——比如images[indexes, ...],但你的场景里最后一维是图像索引,所以用...省略前两维,直接索引最后一维就好。
内容的提问来源于stack exchange,提问作者brownie
相关产品推荐
相关产品推荐

