【发布时间】:2014-03-17 16:26:01
【问题描述】:
我目前正在使用 Numpy 数组将 C++ 程序移植到 Python。如果可能的话,我正在寻找一种以更 Pythonic 的方式实现以下循环的方法:
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 数组的特定区域进行操作很容易,但这给我留下了如何在数组中映射上述索引相关函数的问题。
【问题讨论】:
-
你对
plasmaFreq[i][j]的计算目前没有参考j;对吗? -
这个循环是正确的。它在程序的其他地方必然是一个二维数组,但在这里,我在 x 方向建立一个在 y 方向上恒定的轮廓。