我有一个清单,让我们说:
list_A = [0,0,0,1.0,2.0,3.0,2.0,1.0,0,0,0]
我想找到list_A> 0的这个列表的最小和最大索引.
即在上面的例子中,它将是3和7.
对于其他单调增加的列表,我一直在使用np.searchsorted
,就像np.searchsorted(list,[0.5,1.0])
找到列表所在的索引一样between 0.5 and 1.0
.
但是这种情况完全不同,在np.searchsorted
这里不起作用,或者它可能以我不知道的方式进行!
用其索引过滤压缩列表并获取最小值和最大值:
>>> list_A = [0,0,0,1.0,2.0,3.0,2.0,1.0,0,0,0] >>> filtered_lst = [(x,y) for x,y in enumerate(list_A) if y > 0] >>> max(filtered_lst) (7, 1.0) >>> min(filtered_lst) (3, 1.0)
如果只需要索引,请解压缩返回的值:
>>> maX,_ = max(filtered_lst) >>> maX 7