【发布时间】:2021-12-03 22:12:27
【问题描述】:
我有一个时间序列t,由 30 个特征组成,形状为(5400, 30)。为了绘制它并识别异常,我必须按以下方式重塑它:
t = t[:,0].reshape(-1)
现在,它变成了形状为 (5400,) 的单个张量,我可以在其中执行分析并根据异常的位置创建由 True 和 False 组成的 5400 个元素的列表:
anomaly = [True, False, True, ...., False]
现在我想重塑这个大小为(30, 5400) 的列表(与第一个相反)。我该怎么做?
编辑:这是我想要实现的一个示例:
我有一个大小为(2, 4)
feature 1 | feature 2 | feature 3 | feature 4
0.3 0.1 0.24 0.25
0.62 0.45 0.43 0.9
编码为:
[[0.3, 0.1, 0.24, 0.25]
[0.62, 0.45, 0.43, 0.9]]
当我重塑它时,我得到这个大小为 (8,) 的单变量时间序列:
[0.3, 0.1, 0.24, 0.25, 0.62, 0.45, 0.43, 0.9]
在这个时间序列中,我应用了一种异常检测方法,它为我提供了每个值的真/假列表:
[True, False, True, False, False, True, True, False]
我想制作这个与原始形状相反的列表,所以它的结构如下:
feature 1 True, False
feature 2 False, True
feature 3 True, True
feature 4 False, False
形状为(4, 2),所以编码应该是:
[[True, False]
[False, True]
[True, True]
[False, False]]
【问题讨论】:
-
如何将 5400 重塑为 (30, 5400)?为什么?
-
转置原始集合就足够了吗?
-
@QuangHoang 我还没有重塑它。目前,对于每个观察,我只有 5400 True/False 的列表。我需要列出形状 (30, 5400)
-
您的问题有歧义。您正在将 t 重新分配给 t[:,0].reshape(-1)。向我们提供明确的意见并明确您想要什么。
-
我的问题是,你的输出是什么样的?例如。
output[0]是什么?