首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大列表,查找列表的所有最小值(python)

大列表,查找列表的所有最小值(python)
EN

Stack Overflow用户
提问于 2015-04-13 14:36:09
回答 3查看 3K关注 0票数 0

给定一个大的波动值列表,如何确定所有本地最小值?不使用numpy。局部最小值意味着列表中的所有值都是函数的低谷。

代码语言:javascript
复制
List_y = [23, 8, -7, 57, 87, 6]

我想:

代码语言:javascript
复制
New_list = [-7, 6]
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-13 20:20:02

代码语言:javascript
复制
def local_min(ys):
    return [y for i, y in enumerate(ys)
            if ((i == 0) or (ys[i - 1] >= y))
            and ((i == len(ys) - 1) or (y < ys[i+1]))]


>>> local_min([23, 8, -7, 57, 87, 6])
[-7, 6]
>>> local_min([23, 6, 6, 6, 42])
[6]
>>> local_min([6, 6, 4])
[4]
票数 4
EN

Stack Overflow用户

发布于 2015-04-13 20:23:54

我非常喜欢分阶段迭代这些问题。

代码语言:javascript
复制
l = [23, 8, -7, -7, 57, 87, 6]

# Remove identical neighbors
# l becomes [23, 8, -7, 57, 87, 6]
l = [x for x,y in zip(l[0:], l[1:]) if x != y] + [l[-1]]

# Append positive infinity to both endpoints
# l becomes [inf, 23, 8, -7, 57, 87, 6, inf]
l = [float("inf")] + l + [float("inf")]

# Retain elements where each of their neighbors are greater than them.
# l becomes [-7, 6]
l = [y for x, y, z in zip(l[0:], l[1:], l[2:]) if x > y < z]
票数 3
EN

Stack Overflow用户

发布于 2020-12-07 10:19:01

在这里你可以很容易理解数组排序..。

代码语言:javascript
复制
my_array = [10,20,30,5,1,8,2,14,6,29] #main array
if len(my_array) > 0:
    my_array.sort() #sorting array(min to max)
    min = my_array[0] #after sorting get min value
    print(min) #print min value
else:
    print("array is empty")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29608044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档