7
我想要一個類似於enumerate
的函數,但是在numpy數組上。Python通過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)
有沒有什麼更好的方法來做到這一點?例如。一個內置函數(我找不到任何),或者以某種方式更快的不同定義。
可能重複(http://stackoverflow.com/questions/6967463/iterating-over-a-numpy-array),或者如果您不關心訂購:http://stackoverflow.com/questions/971678/iterating-through-a-multidimensional-array-in-python/971774#971774 – tom10