为了账号安全,请及时绑定邮箱和手机立即绑定

按最终维度过滤 NumPy 数组,仅折叠倒数第二个维度

按最终维度过滤 NumPy 数组,仅折叠倒数第二个维度

慕容森 2022-05-24 18:16:55
我非常困惑与这个问题作斗争,即使它非常简单:我有一个 numpy 数组a在哪里a.shape == (16,4,1000,60)我真的不喜欢a[:,:,:,5] == x我想删除以上所有内容,以生成bwhere b.shape == (16,4,k,60), wherek是一个未知但恒定的数字。where 的索引a[0,0,:,5] == x不一定与 where 的索引相同a[0,1,:,5] == x,但它们总是存在k的。有任何想法吗?谢谢!编辑:我刚刚发现,如果我这样做:b = a[a[:,:,:,5] == x]k = b.size / (16*4*60)b = b.reshape([16,4,k,60])b.shape # e.g. (16,4,3,60)它有效,但这似乎不是一个很好的解决方案。有没有办法明确地保持尺寸?
查看完整描述

1 回答

?
收到一只叮咚

TA贡献1821条经验 获得超5个赞

而不是b = b.reshape([16,4,k,60])只做一个b = b.reshape((16,4,-1,60))numpy将为您找出隐含的维度。

一个且只有一个形状维度可以是-1。在这种情况下,该值是从数组的总大小和其他维度推断出来的。


查看完整回答
反对 回复 2022-05-24
  • 1 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号