2016-01-04 13 views
6

Jak usunąć początkowe/końcowe zera tablicy numpy?Zerowanie/usunięcie zer z tablicy 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] 

To nie działa:

a[a != 0]  

ponieważ byłoby usunąć wszystkie zera w tym zer będących wewnątrz.

Odpowiedz

12

Zastosowanie 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

Nice! Nie wiedziałem o tej funkcji i moim pierwszym pomysłem było 'w = np.where (a! = 0) [0]; a [w [0]: w [-1] +1] 'które nie jest tak mocne z oczywistych powodów. – timgeb

+0

Grrrr .... inna rzecz, która zakodowała ręcznie tylko by się dowiedzieć, że jest. – percusse