考虑一个ndarray
,它包含2个数据点(sample_rate_4[:,0]
,sample_rate_4[:,1]
),以4次/秒的速度采样2秒。sample_rate_4[0,:]
是在0秒采集的样本,sample_rate_4[1,:]
是在0.25秒采集的样本... sample_rate_4[8,:]
是在2秒采集的样本
In [84]: sample_rate_4
Out[84]:
array([[12, 13],
[14, 15],
[ 6, 7],
[16, 17],
[10, 11],
[ 2, 3],
[ 4, 5],
[ 8, 9],
[ 0, 1]])
如何将此数据转换为x次/秒的等效采样数据?例如,如果x= 3,我期望得到以下结果:
array([[12, 13],
[14, 15],
[16, 17],
[10, 11],
[ 2, 3],
[ 8, 9],
[ 0, 1]])
发布于 2020-04-27 19:13:52
如果我理解这个问题,那么你的数据每秒包含4个样本,你想每秒删除第4个样本,这样你每秒就会剩下3个样本。
这可以通过以下方式完成:
sample_rate_4 = array([[12, 13],
[14, 15],
[ 6, 7],
[16, 17], # this row will be removed
[10, 11],
[ 2, 3],
[ 4, 5],
[ 8, 9], # this row will be removed
[ 0, 1]])
out = np.delete(sample_rate_4, slice(3, None, 4), axis=0)
out
>>> array([[12, 13],
[14, 15],
[ 6, 7],
[10, 11],
[ 2, 3],
[ 4, 5],
[ 0, 1]])
slice(3, None, 4)
用于从第3行开始每隔4行删除一次,直到末尾(无)。
https://stackoverflow.com/questions/61456169
复制相似问题