在Python中对numpy数组应用函数

2024-10-01 11:37:58 发布

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

我试着给numpy数组的每一个元素应用一个函数以及一些参数。在

def wcdf(u, A, k):
    if(u > 0):
        y=(1 - np.exp(-(u/A)**(k)));
        return y
    else:
        return(0)

我不知道我遗漏了什么,但是每当数组有一个0时,它会为每个元素返回0。在

^{pr2}$

Result : [ 0.00995017 0.03921056]

上面的方法很好,但是当我有零时:

u=f(np.array([0,2]),10,2);
print(u)

Result : [0 0]

谁能指出我做错了什么!!!!在

谢谢


Tags: 方法函数numpy元素参数returnifdef
1条回答
网友
1楼 · 发布于 2024-10-01 11:37:58

尝试将数组作为np.float32传递

import numpy as np
def wcdf(U, A, k):
    return np.array([1 - np.exp(-(u/A)**(k)) if u >0 else 0 for u in U])


u=wcdf(np.array([0,2],dtype=np.float32),10,2);
print(u)

我的结果:

[ 0. 0.03921056]

使用您的方法使用np.vectorize

^{pr2}$

结果:

[ 0. 0.03921056]

您已经将otypes添加为float

相关问题 更多 >