【发布时间】:2011-12-26 10:25:25
【问题描述】:
我是一名工科学生,我习惯于用 Fortran 编写代码,但现在我正在尝试更多地使用 Python 来使用 Numpy 来编写我的数值配方。
如果我需要使用多个数组中的元素重复执行计算,那么我在 Fortran 中编写的直接翻译将是
k = np.zeros(N, dtype=np.float)
u = ...
M = ...
r = ...
for i in xrange(N):
k[i] = ... # Something with u[i], M[i], r[i] and r[i - 1], for example
但我想知道这种方式是否更 Pythonic,或者在任何方面更可取:
for i, (k_i, u_i, M_i, r_i) in enumerate(zip(k, u, M, r)):
k_i = ... # Something with u_i, M_i, r_i and r[i - 1]
感谢枚举我有索引,否则如果我不需要它,我可以只使用 zip 或 itertools.izip。
有什么想法吗?代码在性能方面如何受到影响?有没有其他方法可以做到这一点?
【问题讨论】:
标签: python numpy iterator scientific-computing