我的代码有一个小问题,例如,如何在python中表达命令“ nonneg”,我想确保我是否正确使用了此函数,或者有另一种方法声明它
for i in oc[1]:
x1 = x0 + oc[:, i]
if nonneg(x1):
xls.append(x1)
x0
是向量或数组,对于x1
和xls
答案 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的可迭代项(即list
或tuple
或类似的版本),您可以这样做
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版本,则需要手动遍历元素。