if语句在python函数中

时间:2017-03-17 19:41:43

标签: python function if-statement

我的数据有一些错误需要计算。错误在某一点发生变化,因此必须对功能稍作调整。 所以我需要这样的东西:

import numpy as np

U1=np.array([0.1,0.5,1,2])

def UErr(U):
    if U>0.68:
        return 0.003*U+0.01
    else:
        return 0.003*U+0.001

U1Err=UErr(U1)

这显然不起作用,因为U> 0.68不可能,因为它是一个数组。 我想这样做(用文字表示): 它应该返回一个包含以下值的数组:

U1Err=([0.0013,0.0025,0.013,0.016])

我知道,这是一个非常基本的问题,因为我只是为了一些(轻量级)数据分析而学习python,我缺少很多基础知识。

如果有人能帮助我,我将不胜感激。 :)

3 个答案:

答案 0 :(得分:0)

如果您有一个列表作为输入,则需要循环或在其上应用函数

def UErr(U):
    return map(lambda u: 0.003*u+0.01 if u > 0.68 else 0.003*u+0.001,  U)

答案 1 :(得分:0)

也可以这样做:

def UErr(U):
    if any(i > 0.68 for i in U):
        return map(lambda x:0.003*x+0.01,U)
    else:
        return map(lambda x:0.003*x+0.001,U)

答案 2 :(得分:-1)

您需要运行一个循环来遍历列表或数组的每个元素。如果你想获得整个数组的所有元素,你可以将列表返回到最后。

def UErr(U):
    for element in range(0,len(U)):
        if U[element] > 0.68:
            U[element]= 0.003*U+0.01
        else:
            U[element] = 0.003*U+0.01
    return U