我正在通过以下代码使用 Numpy 遍历两个数组
for position, force in np.nditer([positions,forces]):
print("(x,y) = (%f,%f)" % (position, force))
但现在我需要它是一本字典
{
1: "(x,y) = (2,3)",
2: "(x,y) = (7,4)",
3: "(x,y) = (1,2)",
4: "(x,y) = (9,8)",
}
您可以在字典理解中的enumerate
的帮助下创建字典:
{i: "(x,y) = (%f,%f)" % t for i, t in enumerate(np.nditer([positions,forces]), 1)}
http://docs.scipy.org/doc/numpy/reference/arrays.nditer.html#tracking-an-index-or-multi-index nditer
确实有跟踪索引的方法,但您失去了一些便利。 它必须在c
样式while
循环中使用:
d={}
it=np.nditer([a,b],flags=['c_index'])
while not it.finished:
d[it.index]='%s, %s'%it[:]
it.iternext()
因此,将迭代器包装在 enumerate
中可能更容易记住和使用。 或者只是跟踪自己的计数器(cnt=0
.... cnt += 1
)。