从第一个非零元素开始切片数组

mou*_*uba 0 python arrays numpy

我有一个前导零的数组,我想从第一个非零元素的数组.例如,我有一个数组

x=[0,0,0,0,0,3,2,0,0,4,5]
Run Code Online (Sandbox Code Playgroud)

我想获得:

 x=[3,2,0,0,4,5]
Run Code Online (Sandbox Code Playgroud)

Eli*_*igo 6

你拥有的是一个列表,而不是一个数组.这是一个纯Python解决方案,但您可以考虑将列表转换为NumPy阵列,并使用Divakar的解决方案以获得更好的性能(当且仅当您计划使用NumPy进行下游处理时)

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]
Run Code Online (Sandbox Code Playgroud)