Code: Select all
import numpy as np
vec = np.array([0, 1, 1, 0, 0, 1, 0, 0])
Hier sind zwei Ansätze, die ich derzeit habe. Eine, die Standard -Python -Loops verwendet, der andere versucht, das zu nutzen, was Numpy mir gibt. Ich habe das Gefühl, dass es eine elegante Möglichkeit geben könnte, dies noch leistungsfähiger zu machen, aber ich bin eingeschränkt, indem ich nur einen Wirtschaftsabschluss habe.
Code: Select all
def last_nonzero_index(vec):
for i in range(len(vec) - 1, -1, -1):
if vec[i] != 0:
return i
return None
< /code>
def last_nonzero_index(vec):
rev_idx = np.flatnonzero(vec[::-1])
return len(vec) - 1 - rev_idx[0] if rev_idx.size else None