向量化python中的嵌套for循环以获取依赖于索引的函数

史考特

我目前正在使用Numpy数组将C ++程序移植到Python。如果可能,我正在寻找一种以Python方式实现以下循环的方法:

for (int j = start_y; j < end_y; j++)
    {
        for (int i = start_x; i < end_x; i++)
        {
            plasmaFreq[i][j] = plasmaFreq_0*(tanh((i - 50)/10) - tanh((i - (nx - 50))/10))/2.0;
        }
    }

上面,plasmaFreq_0是一个常量,传递给周围的函数,nx也是如此。显然,将循环边界向量化以在numpy数组的特定区域上操作很容易,但是这给我留下了如何在数组上映射上述依赖于索引的函数的问题。

米尔森

您需要一个数组i

i = np.arange(start_x, end_x)
plasmaFreq[start_x:end_x, start_y: end_y] = plasmaFreq_0 *(np.tanh((i - 50)/10) - np.tanh((i - (nx - 50))/10))/2.0

我认为广播应该从那里开始。


请注意,您的原始代码效率很低1 ...首先,您要为每个计算右手边j,但它并不依赖j,因此您只需要计算一次即可。其次,您的内部循环在慢速索引之上,因此您将无法有效地使用缓存。我可能会这样写:

for (int i = start_x; i < end_x; i++)
{
    rhs = plasmaFreq_0*(tanh((i - 50)/10) - tanh((i - (nx - 50))/10))/2.0;
    for (int j = start_y; j < end_y; j++)
    {
        plasmaFreq[i][j] = rhs;
    }
}

1如何低效的依赖于编译器可以如何做到摸清循环。有一天,也许某些编译器可能会从您的代码和我的代码中生成相同的代码

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

向量化嵌套循环,其中一个循环变量依赖于另一个

来自分类Dev

如何向量化/优化依赖于先前行的计算

来自分类Dev

向量化嵌套的循环Python

来自分类Dev

向量化嵌套的循环Python

来自分类Dev

当元素依赖于数据帧中的其他元素时,如何矢量化此R函数

来自分类Dev

Spring:循环依赖于构造函数\ setter注入

来自分类Dev

Spring:循环依赖于构造函数\ setter注入

来自分类Dev

如何在Python中向量化这些嵌套循环?

来自分类Dev

向量化python中的for循环

来自分类Dev

向量化python中的for循环

来自分类Dev

向量化嵌套循环

来自分类Dev

Python:依赖于调用函数的 If-Else 语句

来自分类Dev

Python向量化嵌套的图像处理循环

来自分类Dev

在Matlab中向量化而不是嵌套循环

来自分类Dev

在Startup类中获取依赖于DI的类的实例

来自分类Dev

JavaFX Table依赖于索引列

来自分类Dev

如何在依赖于两个变量的函数中仅对一个变量使用“ for”循环?

来自分类Dev

noexcept依赖于成员函数的noexcept

来自分类Dev

嵌套,依赖于循环:求和公式和Big-O表示法

来自分类Dev

使用条件和函数向量化嵌套循环

来自分类Dev

向量化嵌套 for 循环 r

来自分类Dev

向量化循环Python

来自分类Dev

Python 3:依赖于其他函数的函数,缺少参数?

来自分类Dev

indexOf依赖于父函数的变量(数组)在Map函数中运行(Google Apps脚本)

来自分类Dev

Python中的向量化函数问题

来自分类Dev

嵌套循环和MATLAB中if语句的向量化

来自分类Dev

在Matlab的一行中向量化嵌套的for循环

来自分类Dev

嵌套循环和if语句在MATLAB中的向量化

来自分类Dev

在MATLAB中向量化两个嵌套的for循环

Related 相关文章

热门标签

归档