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

如何使用均值函数对n维numpy数组的单个维度进行重采样

均值降采样实现方案

最优方案:纯NumPy向量化实现

这是性能最高、无额外依赖的方案,全程调用NumPy内置优化接口,没有循环开销:

import numpy as np

# 输入原数组 arr 形状为 (1200, 500, 1)
window_size = 10 # 500 / 50 = 10,刚好整除无需处理边缘
downsampled_arr = arr.reshape(1200, 50, window_size, 1).mean(axis=2)

实现逻辑说明:

  • 先通过reshape把长度为500的第二个维度拆为50 * 10的二维结构,这个操作仅修改数组视图,不会复制数据,开销可忽略
  • 再对拆分出来的窗口维度(第3个维度,索引为2)求均值,得到的输出数组形状恰好是你需要的(1200, 50, 1)
  • 单步运算都是NumPy底层C实现的向量化操作,比Python手写循环效率高1~2个数量级

如果遇到降采样比例不能整除的场景,可以先对原数组做截断/补零预处理,示例如下:

target_len = 50
window_size = 10
# 截断多余的边缘数据
trimmed_arr = arr[:, :target_len * window_size, :]
downsampled_arr = trimmed_arr.reshape(1200, target_len, window_size, 1).mean(axis=2)

备选方案:已有第三方依赖时的简化实现

如果项目已经引入了图像处理相关依赖,也可以直接调用封装好的接口:

from skimage.transform import resize
# order=0对应均值采样,关闭抗锯齿避免额外计算开销
downsampled_arr = resize(arr, (1200, 50, 1), anti_aliasing=False, order=0)

该方案代码更简洁,但性能略低于纯NumPy实现,适合不需要极致性能的场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:27:03