【发布时间】:2014-01-27 01:52:32
【问题描述】:
我想要一个行为类似于enumerate,但在 numpy 数组上的函数。
>>> list(enumerate("hello"))
[(0, "h"), (1, "e"), (2, "l"), (3, "l"), (4, "o")]
>>> for x, y, element in enumerate2(numpy.array([[i for i in "egg"] for j in range(3)])):
print(x, y, element)
0 0 e
1 0 g
2 0 g
0 1 e
1 1 g
2 1 g
0 2 e
1 2 g
2 2 g
目前我正在使用这个功能:
def enumerate2(np_array):
for y, row in enumerate(np_array):
for x, element in enumerate(row):
yield (x, y, element)
有没有更好的方法来做到这一点?例如。一个内置函数(我找不到任何函数),或者以某种方式更快的不同定义。
【问题讨论】:
-
Iterating over a numpy array 的可能副本,或者如果您不关心订购:stackoverflow.com/questions/971678/…
标签: python arrays numpy enumerate