【发布时间】:2018-05-05 07:47:01
【问题描述】:
假设我有一些数组:
x = numpy.array([1, 2, 3, 4, 5, 1, 1, 1])
我想在数组末尾找到连续的1s 的数量。一种方法是使用循环:
i = len(x) - 1
while x[i] == 1:
i = i - 1
现在我可以查看i 并计算出x 后面的1s 的数量。但是,在我的真实示例中,x 可能非常大,1s 的数量也可能非常大,所以我想要一个解决方案:
- 不使用循环,并且
- 不遍历整个数组
【问题讨论】:
-
编写一个 C 扩展(使用 Cython)或使用
numba。两者都会使用循环。 -
如果数组的最后一个元素不是
1,根据您的要求,您需要得到什么值?