我想要一个行为类似于的函数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)
有什么更好的方法吗?例如内置函数(找不到)或以某种方式更快的其他定义。
您要np.ndenumerate
:
>>> for (x, y), element in np.ndenumerate(np.array([[i for i in "egg"] for j in range(3)])):
... print(x, y, element)
...
(0L, 0L, 'e')
(0L, 1L, 'g')
(0L, 2L, 'g')
(1L, 0L, 'e')
(1L, 1L, 'g')
(1L, 2L, 'g')
(2L, 0L, 'e')
(2L, 1L, 'g')
(2L, 2L, 'g')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句