python函数中的If语句

2024-09-30 18:29:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据有一些错误要计算。误差在某一点上发生变化,必须对此函数进行微调。 所以我需要这样的东西:

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的一些(轻)数据分析,我错过了相当多的基础知识。你知道吗

如果有人能帮我,我会很感激的。:)


Tags: 数据函数importnumpyreturnas错误np
3条回答

您需要运行一个循环来遍历列表或数组的每个元素。如果要获取整个数组的所有元素,可以返回列表直到结束。你知道吗

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

如果你有一个列表作为输入,你需要循环或者在上面应用一个函数

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

也可以这样做:

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)

相关问题 更多 >