numpy 数组中的矢量化非零组

假设您有 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]


蝴蝶不菲
浏览 168回答 1
1回答

慕村225694

这是使用的一种方法np.split:a# array([0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 4, 5, 0, 0, 0])### find nonzerosz = a!=0### find switching pointsz[1:] ^= z[:-1]### split at switching points and discard zerosnp.split(a, *np.where(z))[1::2]# [array([1, 2, 3]), array([4, 5])]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python