You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Numpy ndarray切片跳行操作解析:img[::2,::2]的作用与原理

理解numpy数组切片img[::2, ::2]的操作逻辑

嘿,这问题问得实在!咱们一步步拆解这个numpy切片操作到底干了啥:

首先得回忆下numpy的切片语法:[start:stop:step],当你只写::2的时候,意思是从数组的第一个元素开始,到最后一个元素结束,每隔2个元素取一个。

回到你的例子,原数组img的形状是(468, 832, 3),对应图像的「高度(行数)、宽度(列数)、颜色通道数」:

  • 第一个维度(468):代表图像的行,::2就是每隔一行取一行——取第0行、第2行、第4行……一直到最后一行。468除以2正好是234,所以这个维度的长度变成了234。
  • 第二个维度(832):代表图像的列,同样用::2就是每隔一列取一列——取第0列、第2列、第4列……直到最后一列。832除以2等于416,所以这个维度的长度变成416。
  • 第三个维度(3):你没写切片规则,numpy就会默认保留所有元素,所以颜色通道数还是3。

说白了,这个操作就是对图像做了2倍降采样——把图像的长和宽都压缩到原来的1/2,整体分辨率变成原来的1/4(因为面积是长×宽),同时保留所有颜色信息。

举个更直观的小例子:如果原数组是(4, 4, 3),执行img[::2, ::2]后,得到的数组形状就是(2, 2, 3),相当于从4×4的像素网格里,只保留了(0,0)、(0,2)、(2,0)、(2,2)这些间隔位置的像素。

内容的提问来源于stack exchange,提问作者Vaishnav MK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:05:24