如何对698×64×64的NumPy数组隔行隔列切片得到698×32×32数组
解决方案
你可以利用NumPy的切片语法轻松实现这个需求,核心是对数组的后两个维度(行和列)使用步长为2的切片操作。
假设你的原数组名为arr,代码示例如下:
import numpy as np # 示例:生成符合原维度的随机数组(实际使用时替换为你的真实数组) arr = np.random.rand(698, 64, 64) # 提取每隔一行和一列,得到698×32×32的新数组 new_arr = arr[:, ::2, ::2]
代码说明
[:, ::2, ::2]的具体作用:- 第一个冒号
::保留第一个维度(698个元素)的全部数据,不做筛选 - 第二个
::2:对第二个维度(行)进行切片,从第0行开始,步长为2取行,64行最终得到32行 - 第三个
::2:对第三个维度(列)执行同样的步长为2的切片,64列最终得到32列
- 第一个冒号
验证结果
你可以通过以下代码确认新数组的维度是否符合预期:
print(new_arr.shape) # 输出结果为 (698, 32, 32)
内容的提问来源于stack exchange,提问作者Tan Jian Sean
相关产品推荐
相关产品推荐

