2016-11-02 4 views

Antwort

1

Verwenden np.argmax auf non-zeros den Start Nicht-Null-Index zu erhalten und sie dann einfach in Scheiben schneiden -

x[(x!=0).argmax():] 

Probenlauf -

In [71]: x 
Out[71]: array([0, 0, 0, 0, 0, 3, 2, 0, 0, 4, 5]) 

In [72]: x[(x!=0).argmax():] 
Out[72]: array([3, 2, 0, 0, 4, 5]) 
+0

dank es –

6

Was Sie haben, ist eine Liste, kein Array. Dies ist eine reine Python-Lösung, obwohl Sie möglicherweise in Erwägung ziehen, Ihre Liste in ein NumPy-Array zu konvertieren und die Lösung von Divakar für eine bessere Leistung zu verwenden.

In [1]: from itertools import dropwhile 

In [2]: from operator import not_ 

In [3]: x = [0,0,0,0,0,3,2,0,0,4,5] 

In [4]: list(dropwhile(not_, x)) 
Out[4]: [3, 2, 0, 0, 4, 5] 
+0

Oft funktioniert, wenn sie mit einer Liste Start es ist schneller mit der Liste zu bleiben; und die Verwendung von 'itertools' gibt diesem einen weiteren Vorteil. – hpaulj

Verwandte Themen