我是一名工程学生,习惯使用Fortran编写代码,但现在我正在尝试使用Numpy更深入地了解Python以进行数值计算。
如果我需要使用来自多个数组的元素重复执行计算,那么从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
但是我想知道这种方式是否更符合Python的风格,或者在任何方面更可取:
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]
感谢enumerate,我拥有了索引,否则如果我不需要它,我可以只使用zip或itertools.izip。
有什么想法吗?在性能方面,代码会受到影响吗?还有其他完成此任务的方法吗?