根据条件从数组中选择元素

时间:2019-11-02 15:25:02

标签: python numpy

这可能是一个简单的问题,但是,让我们说我们有一个数组:

a = [0,10,20]

检索大于0的最小值的最简单方法是什么?在这种情况下,它将是10。

5 个答案:

答案 0 :(得分:3)

或生成器上的min

min(x for x in a if x > 0)

示例

a = [0,10,20]

print(min(x for x in a if x > 0))
# 10

答案 1 :(得分:3)

我可以不使用numpy进行尝试。

def findValue():
    a = [0,10,5,20]
    a.sort()
    noToCheck = 0
    for i in a:
        if i > noToCheck :
            print("Found value: ", i)
            break

findValue()

答案 2 :(得分:2)

由于您在代码中加入了Numpy,我假设您对Numpy的解决方案感到满意吗?

import numpy as np

a = np.array([0,10,20])

np.min(a[a > 0])
  

出[1]:10

答案 3 :(得分:2)

不漂亮

a = [0, 10, 20]


def find_lowest_num(a):
    lowest_num = None
    for element in a:
        if lowest_num is None and element > 0:
            lowest_num = element
        elif lowest_num is None and element == 0:
            pass
        else:
            if element < lowest_num and element > 0:
                lowest_num = element
    return lowest_num

print(find_lowest_num(a))

答案 4 :(得分:1)

您可以通过按键使用min()函数:

min(a, key=lambda x: float("inf") if x<=0 else x)