如何以模块化方式将数据帧或数组从任何起始长度上采样到预定义长度?

问题描述

我想使用 pywt 中的 .wavedec 函数进行离散小波变换,该函数将 1d 或 2d 数组/数据帧作为输入并输出数组列表(1D 或 2D,取决于输入)。每个数组的长度是它之前的数组长度的一半。

array = np.array(range(0,100))
dwt = pywt.wavedec(array,'haar')

len(dwt)

输出

7

在这是我的问题,我需要“dwt”中的每个数组与“array”的长度相同。

for i in range(len(dwt)):
    print(len(array) / len(dwt[i]))

输出

50.0
50.0
25.0
14.285714285714286
7.6923076923076925
4.0
2.0

对于 2 的倍数,上采样非常容易:

def upscale_2x(df):
    df.index = pd.date_range('1/1/2000',periods= len(df),freq='T')

    result = df.resample('30S').pad()
    result = result.append(result.iloc[-1,:])
    
    return result

然而,当输出不完全是 2 的倍数时,这不起作用,至于列表中的第 7 个数组,我将需要多次重复该算法,因此简单的修正很快变得不可行。

最重要的是,我需要它来处理具有任意行数的输入数组。任何帮助将不胜感激!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)