假設您有 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])]
添加回答
舉報
0/150
提交
取消