如果我得到一个排序的numpy数组A = [1、2、3、4、5、6],我想获取索引,其中A [0:index]的总和大于某个数字(假定设为9,在这种情况下,index的值应为3),如何用python编写?
我想也许我可以使用np.where()或np.cumsum(),但是它不起作用
np.argwhere(np.cumsum(A) > 9)
当然,这是错误的,那么正确的方法是什么?
答案 0 :(得分:0)
你很近。您可以按照以下方式使用argmax
。另外,在使用argmax时,添加检查以确保至少1的值超过阈值。
threshold = 9
temp = np.cumsum(A) > threshold
if temp.any():
print(np.argmax(temp))
else:
print("Threshold never crossed")
答案 1 :(得分:0)
我建议:
def foo(array, threshold):
valid_entries = np.cumsum(array) > threshold
return np.argmax(valid_entries) if np.any(valid_entries) else None