首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NumPy :如何用“有损”变换变换ndarray的形状

NumPy :如何用“有损”变换变换ndarray的形状
EN

Stack Overflow用户
提问于 2020-04-27 17:57:46
回答 1查看 22关注 0票数 0

考虑一个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秒采集的样本

代码语言:javascript
运行
复制
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,我期望得到以下结果:

代码语言:javascript
运行
复制
array([[12, 13],
       [14, 15],
       [16, 17],
       [10, 11],
       [ 2,  3],
       [ 8,  9],
       [ 0,  1]])
EN

回答 1

Stack Overflow用户

发布于 2020-04-27 19:13:52

如果我理解这个问题,那么你的数据每秒包含4个样本,你想每秒删除第4个样本,这样你每秒就会剩下3个样本。

这可以通过以下方式完成:

代码语言:javascript
运行
复制
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行删除一次,直到末尾(无)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61456169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档