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

numpy 数组中的矢量化非零组

numpy 数组中的矢量化非零组

蝴蝶不菲 2021-12-29 10:31:59
假设您有 1d numpy 数组:[0,0,0,0,0,1,2,3,0,0,0,0,4,5,0,0,0]您将如何在不使用 for 循环的情况下创建以下组?[1,2,3], [4,5]
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

这是使用的一种方法np.split:


a

# array([0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 4, 5, 0, 0, 0])

### find nonzeros

z = a!=0

### find switching points

z[1:] ^= z[:-1]

### split at switching points and discard zeros

np.split(a, *np.where(z))[1::2]

# [array([1, 2, 3]), array([4, 5])]


查看完整回答
反对 回复 2021-12-29
  • 1 回答
  • 0 关注
  • 167 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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