Skip to main content
 首页 » 编程设计

python之Python 中的 Arrayfun

2025年05月04日9myhome

我正在尝试将一些代码从 Matlab 转换为 Python。知道我将如何转换这条线吗?我是 python 的新手,以前从未见过 arrayfun。谢谢。非常感激。

 zj=arrayfun(@sigmoid,aj); 

请您参考如下方法:

您将要使用数值库 numpy每当您处理数字数据时。

其中,名为 arrayfun 的 Matlab 函数只是该函数的矢量化形式。例如

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 中,你会这样做:

>>> import numpy as np 
>>> a = np.arange(4) 
>>> np.sqrt(a) 
array([ 0.        ,  1.        ,  1.41421356,  1.73205081]) 

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

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