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

Numpy如何将单个数组匹配堆叠到大数组每行生成目标二维数组

Numpy实现两数组按位置逐行配对拼接

需求

给定两个numpy数组:

  • heartbeats:二维数组,共100行,每行包含5个元素
  • time_index:长度为5的一维数组
    需要将time_index的元素,和heartbeats每一行同位置的元素一一配对,按heartbeats的行顺序拼接,输出形状为(500, 2)的二维数组。

简化示例输入:

import numpy as np
heartbeats = np.array([
    [-0.58, -0.57, -0.55, -0.39, -0.40],
    [-0.31, -0.31, -0.32, -0.46, -0.46]
])
time_index = np.array([-2, -1, 0, 1, 2])

预期输出:

array([[-2.  , -0.58],
       [-1.  , -0.57],
       [ 0.  , -0.55],
       [ 1.  , -0.39],
       [ 2.  , -0.40],
       [-2.  , -0.31],
       [-1.  , -0.31],
       [ 0.  , -0.32],
       [ 1.  , -0.46],
       [ 2.  , -0.46]])

实现方案

用numpy内置向量化操作完成,无Python层显式循环,执行效率最高:

result = np.column_stack((
    np.tile(time_index, heartbeats.shape[0]),
    heartbeats.flatten()
))

逻辑说明

  • np.tile(time_index, heartbeats.shape[0]):把time_index重复heartbeats的行数次,生成和展平后的heartbeats等长的数组,元素顺序为[-2,-1,0,1,2,-2,-1,0,1,2,...]
  • heartbeats.flatten():按行优先顺序把二维的heartbeats展平为一维数组,元素顺序和配对要求完全匹配
  • np.column_stack:把两个等长的一维数组按列拼接,最终得到两列的二维数组,结构和预期完全一致。

直接把示例中的heartbeats替换为你的100行真实数据即可运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 05:21:46