2016-01-04 13 views
6

numpy配列の先頭/末尾のゼロを削除するにはどうすればよいですか?numpy配列のゼロをトリム/ストリップする

import numpy as np 
a = np.array([0,0,0,3,2,-1,0,0,7,9,13,0,0,0,0,0,0,0]) 

#Desired output 
[3,2,-1,0,0,7,9,13] 

これは動作しません:

a[a != 0]  

それは内部あるゼロを含むすべてゼロを削除してしまうため。

答えて

12

使用numpy.trim_zeros

>>> import numpy as np 
>>> a = np.array([0,0,0,3,2,-1,0,0,7,9,13,0,0,0,0,0,0,0]) 
>>> np.trim_zeros(a) 
array([ 3, 2, -1, 0, 0, 7, 9, 13]) 
+1

ナイス!私はこの機能を認識しておらず、私の最初のアイデアは 'w = np.where(a!= 0)[0]でした。 a [w [0]:w [-1] +1] 'である。 – timgeb

+0

Grrrr ....それを見つけるために手作業でコード化された別のもの.... – percusse

関連する問題