在Python中使用Arrayfun?

2024-04-25 01:10:58 发布

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

我正在尝试将一些代码从Matlab转换成Python。你知道我该怎么转换这条线吗?我对python非常陌生,以前从未见过arrayfun。谢谢。非常感谢。在

 zj=arrayfun(@sigmoid,aj);

Tags: 代码matlabaj陌生sigmoidzjarrayfun
2条回答

一般来说,使用循环:

 zj=[sigmoid(x) for x in aj]

无论何时处理数值数据,都需要使用数值库^{}。在

其中,名为arrayfun的Matlab函数只是该函数的矢量化形式。E、 g

Matlab软件:

>> a = 1:4

a =

     1     2     3     4

>> arrayfun(@sqrt, a)

ans =

    1.0000    1.4142    1.7321    2.0000

>> sqrt(a)

ans =

    1.0000    1.4142    1.7321    2.0000

而在numpy中,你会:

^{pr2}$

大多数函数都可以矢量化,sigmoid也不例外。例如,如果sigmoid被定义为1./(1 + exp(-x)),那么可以用Python编写:

def sigmoid(x):
    return 1./(1 + np.exp(-x))

zj = sigmoid(aj)

相关问题 更多 >