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

基于时间序列合并两个张量的技术实现问询

按日期轴合并张量A2和B2的实现方案

核心思路

将两个张量对应的日期列表合并后按时间排序,根据排序后的日期顺序,从A2和B2中提取对应位置的数据,拼接成最终的张量C。

具体实现(PyTorch)

1. 预处理日期列表

先将字符串格式的日期转换为可排序的datetime对象,并标记每个日期的来源(A或B)及原索引:

import torch
from datetime import datetime

# 替换为你的真实日期列表
dates_A = ['2021-12-13', '2021-12-28', '2022-01-02', ...]  # 长度19
dates_B = ['2021-12-20', '2022-01-05', ...]  # 长度9

# 转换为datetime对象以便排序
date_objs_A = [datetime.strptime(d, "%Y-%m-%d") for d in dates_A]
date_objs_B = [datetime.strptime(d, "%Y-%m-%d") for d in dates_B]

# 合并所有日期项,记录来源和原索引
all_date_entries = []
for idx, dt in enumerate(date_objs_A):
    all_date_entries.append((dt, 'A', idx))
for idx, dt in enumerate(date_objs_B):
    all_date_entries.append((dt, 'B', idx))

# 按日期升序排序
all_date_entries.sort(key=lambda x: x[0])

2. 合并张量生成C

方式一:循环赋值(直观易读)

适合小批量数据,逻辑清晰:

# 初始化结果张量,匹配批次大小、合并后的长度和编码维度
batch_size = 128
encoded_dim = 10
C = torch.zeros(batch_size, len(all_date_entries), encoded_dim, dtype=A2.dtype, device=A2.device)

# 按排序后的日期顺序填充数据
for merged_idx, (_, source, orig_idx) in enumerate(all_date_entries):
    if source == 'A':
        C[:, merged_idx, :] = A2[:, orig_idx, :]
    else:
        C[:, merged_idx, :] = B2[:, orig_idx, :]

方式二:向量化赋值(高效)

适合大规模张量,减少循环开销:

# 分离A和B的位置与索引
a_positions, a_indices = [], []
b_positions, b_indices = [], []

for merged_idx, (_, source, orig_idx) in enumerate(all_date_entries):
    if source == 'A':
        a_positions.append(merged_idx)
        a_indices.append(orig_idx)
    else:
        b_positions.append(merged_idx)
        b_indices.append(orig_idx)

# 批量赋值
C = torch.zeros(batch_size, len(all_date_entries), encoded_dim, dtype=A2.dtype, device=A2.device)
C[:, a_positions, :] = A2[:, a_indices, :]
C[:, b_positions, :] = B2[:, b_indices, :]

注意事项

  • 确保dates_A长度等于A2的date轴长度(19),dates_B长度等于B2的date轴长度(9)
  • 若存在重复日期,上述代码会保留两个条目;如需合并重复日期,可先对all_date_entries按日期分组,再自定义合并规则(如取A的data、取B的data或加权合并)
  • 日期格式需统一,若你的日期包含时间信息,需调整strptime的格式字符串(例如"%Y-%m-%d %H:%M:%S")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:35:21