繁体   English   中英

numpy 数组的反向整形

[英]Reverse reshaping of a numpy array

我有一个由 30 个特征组成的时间序列t ,形状为(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]]
t = np.array([[0.3, 0.1, 0.24, 0.25],[0.62, 0.45, 0.43, 0.9]])
anomaly= [True, False, True, False, False, True, True, False]
your_req_array = np.array(anomaly).reshape(2,4).T

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM