问题描述
我想使用 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 (将#修改为@)