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

Numpy数组反向重塑:如何将异常检测一维标记转换为目标多维维度

前提说明

你开头贴的代码t = t[:,0].reshape(-1)是取原始张量的第0列特征,仅会得到长度为5400的一维数组,和你补充示例里「将所有特征拉平为长度等于时间步数量*特征数量的一维数组」的逻辑不符,推测是笔误,实际拉平代码为t = t.reshape(-1),以下方案基于该前提实现。

实现方案

核心逻辑非常简单:先把异常标记列表重塑为和原始时间序列完全相同的(时间步数量, 特征数量)形状,再对数组做转置即可得到(特征数量, 时间步数量)的目标结构。

1. NumPy 实现(最常用)

import numpy as np

# 示例场景验证
anomaly = [True, False, True, False, False, True, True, False]
# 先reshape为原始输入形状(时间步=2, 特征数=4),再转置
anomaly_final = np.array(anomaly).reshape(2, 4).T
print(anomaly_final)
# 输出:
# [[ True False]
#  [False  True]
#  [ True  True]
#  [False False]]

# 适配你的实际场景:原始形状(5400, 30),目标形状(30, 5400)
anomaly_final = np.array(anomaly).reshape(5400, 30).T

2. PyTorch 实现(针对张量场景)

import torch

anomaly_tensor = torch.tensor(anomaly)
anomaly_final = anomaly_tensor.reshape(5400, 30).T

3. 纯Python 实现(无需第三方库)

n_time_step = 5400
n_feature = 30
anomaly_final = []
for feature_idx in range(n_feature):
    # 按特征维度逐个取对应时间步的异常标记
    feature_anomaly = [anomaly[ts * n_feature + feature_idx] for ts in range(n_time_step)]
    anomaly_final.append(feature_anomaly)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:57:01