我需要做这样的事情
import numpy as np
a = np.random.rand(1000)
a -= .55
a[0] = 1
b = 0
for i in range(len(a)):
b += a[i]
if b < 0:
print(i)
break
很多,而且最好是快速的。NumPy能帮我吗?我知道NumPy是为向量计算而构建的,而不是为这个。尽管如此,它可以非常快地计算数组的和--我能给予它这个特定的条件(和第一次为负),让它停下来告诉我索引号吗?
1条答案
按热度按时间zazmityj1#
您可以使用
numpy.cumsum()
和numpy.argmax()
。首先,计算元素的累积和。然后返回elements < 0
的True/False
,并返回element < 0
与argmax()
的第一个为True的索引。检查两个代码:
输出:(生成基本随机输入)