python - 有没有一种方法可以在没有 for 循环的情况下在 numpy 中实现递归?

标签 python numpy vectorization recurrent-neural-network recurrence

我遇到以下问题。有一个矩阵X,我需要生成一个矩阵H,使得矩阵H中的i_th行的值由矩阵Xi_th行和矩阵H(i-1)_th行确定。

H_{i} = F(X_{i}, H_{i-1})

为了计算矩阵 H 的第一行,我们使用特殊的矩阵外行(可以说是第 0 行)。

有没有一种方法可以在不使用 for 循环的情况下以向量化形式有效地实现这种递归?

最佳答案

除了显式的 for 循环之外(一般来说)没有其他方法。这是因为无法跨行并行化此任务(因为每行都依赖于其他行)。

让这变得更加困难的是,您可以轻松生成 chaotic behavior ,例如看似无辜的logistic map :x_{n+1} = r * x_n * (1 - x_{n-1})

只有设法找到封闭形式,从本质上消除递归关系,才能找到解决此问题的方法。但这必须对每个递归关系完成,我很确定你甚至不能保证封闭形式的存在......

关于python - 有没有一种方法可以在没有 for 循环的情况下在 numpy 中实现递归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48864790/

相关文章:

带有参数的python设置工具console_scripts

python - 我在制作打印 pi 的按钮时遇到问题

python - pandas 或 numpy - 如何计算返回的 true/false 数组

r - 向量化 R 代码以从每行中随机选择 2 列

python - Docker 容器在启动时在 requirements.txt 中安装新包

python - 在Python中以对数尺度插值

python - 为什么 `numpy` 左移位比 python 慢?

pandas - 如何矢量化以加速 Dataframe apply pandas

python - 有效地减去不同形状的numpy数组

python - 从 Blackberry App World (API) 获取应用特定数据的最佳方式