2016-01-04 13 views
6

Sayısal dizinin önde/sonunda sıfırları nasıl kaldırılır?Sayısal dizinin sıfır/şerit sıfırları

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] 

Bu işe yaramazsa:

a[a != 0]  

o içeride olan sıfır dahil tüm sıfırları kaldırmak çünkü.

cevap

12

Kullanım 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

Güzel! Bu işlevin farkında değildim ve ilk fikrim 'w = np.where (a! = 0) [0]; a [w [0]: w [-1] +1] 'ki bu açık nedenlerden dolayı sağlam değildir. – timgeb

+0

Grrrr .... sadece elle bulmak için kodlanmış başka bir şey var. – percusse

İlgili konular