【发布时间】:2016-07-19 08:30:37
【问题描述】:
我看到有一个 array_split 和 split methods 但是当您必须拆分一个长度不是块大小整数倍的数组时,这些并不是很方便。而且,这些方法输入的是切片数量而不是切片大小。我需要更像 Matlab 的 buffer 方法,它更适合信号处理。
例如,如果我想将信号缓冲到大小为 60 的块中,我需要这样做:np.vstack(np.hsplit(x.iloc[0:((len(x)//60)*60)], len(x)//60)),这很麻烦。
【问题讨论】:
-
你试过
np.split吗?它在指定的索引处拆分,因此应注意不规则的间隔。我们只需要使用范围创建这些索引。 -
快速浏览
buffer文档让我想起了numpystride_tricks.as_strided,尤其是它处理重叠和跳过的能力。但对于这种情况,这可能太强大了,也太危险了。 -
x.reshape(-1,60)会将x分成大小相等的 60 行。如果x的长度不是 60 的倍数,则必须填充或截断。但是vstack也需要这样做。
标签: python matlab numpy buffer