我正在尝试将一些代码从 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)
关于python - Python 中的 Arrayfun?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28844859/