max(i for i in s.index if s[i] != 0) # will work only if index is sorted
以及
^{pr2}$
这也是相当快速和可读的。在
通过numpy的trip_zeros:
import numpy as np
np.trim_zeros(s, 'b').index[-1]
这比@DSM的两个答案都慢。在
摘要:
timeit np.trim_zeros(s, 'b').index[-1]
10000 loops, best of 3: 89.9 us per loop
timeit s[s != 0].index[-1]
10000 loops, best of 3: 68.5 us per loop
timeit next(i for i in s.index[::-1] if s[i] != 0)
10000 loops, best of 3: 19.4 us per loop
timeit max(i for i in s.index if s[i] != 0)
10000 loops, best of 3: 16.8 us per loop
timeit s.index[s.nonzero()[0][-1]]
100000 loops, best of 3: 1.94 us per loop
我可能只写
s[s != 0].index[-1]
,例如最初我以为使用
^{pr2}$nonzero
会使事情变得简单,但我能想到的最好的办法是这个例子要快得多(快30多倍),但我不喜欢它的外观。。基督教青年会。在
只是想出了一些解决办法。在
发电机的几种方法:
以及
^{pr2}$这也是相当快速和可读的。在
通过numpy的
trip_zeros
:这比@DSM的两个答案都慢。在
摘要:
相关问题 更多 >
编程相关推荐