Python中的非负函数

时间:2019-06-15 16:15:23

标签: python julia

我的代码有一个小问题,例如,如何在python中表达命令“ nonneg”,我想确保我是否正确使用了此函数,或者有另一种方法声明它

for i in oc[1]:
    x1 = x0 + oc[:, i]
    if nonneg(x1):
        xls.append(x1)

x0是向量或数组,对于x1xls

1 个答案:

答案 0 :(得分:1)

如果使用的是numpy,则可以检查数组的所有元素是否都是非负的,如下所示:

import numpy as np

def nonneg(array):
    return not np.any(array < 0)

print(nonneg(np.array([1, 1])))  # True
print(nonneg(np.array([0, 1])))  # True
print(nonneg(np.array([-1, 1]))) # False

如果您使用的是纯Python的可迭代项(即listtuple或类似的版本),您可以这样做

def nonneg(lst):
    return not any(element < 0 for element in lst)

print(nonneg([1, 1]))  # True
print(nonneg([0, 1]))  # True
print(nonneg([-1, 1])) # False

在两种情况下,我们只是明确地问一个问题:“数组的任何元素是否为负?”,然后翻转答案以获取是否有任何元素为-负。对于numpy,我们利用了数组范围的操作,而对于普通的Python版本,则需要手动遍历元素。