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

如何将numpy的帧数组转换为帧对数组?是否有可推广至多帧的实现方法?

双帧场景(输出形状400×160)实现

你要的逻辑可以通过数组补位+拼接快速实现,代码如下:

import numpy as np

# 示例原数组,形状400×80
origin_arr = np.random.rand(400, 80)

# 构造前80列:第一行补0,后续行取上一行的原数据
prefix_col = np.pad(origin_arr[:-1], pad_width=((1, 0), (0, 0)), constant_values=0)
# 前后两部分拼接得到最终结果
result = np.concatenate([prefix_col, origin_arr], axis=1)

多帧通用实现

如果要推广到k帧(比如k=3对应输出400×240),可以封装成通用函数,逻辑是先在原数组头部补k-1行0,再按偏移量取对应行数拼接即可:

def convert_to_multi_frame(arr: np.ndarray, frame_num: int) -> np.ndarray:
    """
    arr: 输入二维数组,形状为 (样本数, 单帧特征维度)
    frame_num: 需要拼接的总帧数
    返回: 拼接后的数组,形状为 (样本数, 单帧特征维度 * frame_num)
    """
    row_cnt, feat_dim = arr.shape
    # 头部补frame_num-1行全0,解决首行前序帧缺数的问题
    padded_arr = np.pad(arr, pad_width=((frame_num - 1, 0), (0, 0)), constant_values=0)
    # 按偏移量取对应帧数据
    frame_list = [padded_arr[offset : offset + row_cnt] for offset in range(frame_num - 1, -1, -1)]
    # 沿特征维度拼接所有帧
    return np.concatenate(frame_list, axis=1)

# 调用示例:2帧对应题目需求,输出形状400×160
res_2frame = convert_to_multi_frame(origin_arr, frame_num=2)
# 调用示例:3帧场景,输出形状400×240
res_3frame = convert_to_multi_frame(origin_arr, frame_num=3)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 15:03:02