因此,我一直在Internet上四处寻找内容,但是如果没有for循环+ if语句,我将找不到解决方法。假设我将其作为数组:
import numpy as np
a = np.array([361, 362, 363, 364, 365, 0, 1, 2, 366, 367])
我想找出第一个最高值(无论将来是否还有另一个更高的值),在这种情况下将是365
。这就是我不使用numpy的方式:
import numpy as np
a = np.array([361, 362, 363, 364, 365, 0, 1, 2, 366, 367])
for element in range(a.shape[0]-1):
if a[element+1] < a[element]:
first_max = a[element]
break
print(first_max)
# 365
有没有办法使用numpy函数来做到这一点?
一种方法是采用第一个差异,找到第一个负值,并使用argmax
以下方法获取其索引:
a[(np.diff(a) < 0).argmax()]
# 365
尽管根据情况而定,但在第一场比赛中发电机和短路可能会更好:
next(v0 for i,(v0,v1) in enumerate(zip(a[:-1], a[1:])) if v0>v1)
# 365
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句