【发布时间】:2014-10-23 05:27:02
【问题描述】:
我很难想出一个生成器来迭代存储在列表中的 numpy 数组的行。
我可以通过使用常规 for 循环来完成此操作:
list = [numpy.array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]]), numpy.array([[0, -1, -2, -3, -4],
[-5, -6, -7, -8, -9]])]
for array in list:
for row in array:
print(' '.join(map(str, row)))
但我想提出一个生成器,它可以用更少的代码完成这个任务。我尝试了以下方法,它可以工作,但数组行数是硬编码的:
mygen = (' '.join(map(str, i[j])) for j in range(2) for i in list)
for r in mygen:
print (r)
现在,当我尝试将 range(2) 更改为 range(i.shape[0]) 时,我得到了 IndexError: tuple index out of range。为什么这段代码不起作用?
【问题讨论】:
标签: python list numpy indexing generator