python - Python 中的 Arrayfun?

标签 python matlab

我正在尝试将一些代码从 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/

相关文章:

python - python 中奇怪的静默崩溃与 : OSX, 请求、sqlite3、多处理的组合

python - 是否可以在 python 中标记已经屏蔽的文本?

matlab - 在 MATLAB 中自动将图形写入文件

具有固定行总和的 Matlab 矩阵

python - 在 Flask 中渲染 jupyter ipynb int html

python - 在 AWS Lambda 函数中使用 python 运行 ffmpeg 命令的问题

python - 如何使用Python在Windows中获取用户应用程序(而不是进程)信息

matlab - 为包含空格的 matlab 结构体字段名称赋值

matlab - 从连接的组件制作跳棋的有效方法

c - 将int映射到float?