Python通过numpy中的二维数组枚举[重复]
Posted
技术标签:
【中文标题】Python通过numpy中的二维数组枚举[重复]【英文标题】:Python enumerate through 2D array in numpy [duplicate] 【发布时间】: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 的可能副本,或者如果您不关心订购:***.com/questions/971678/… 【参考方案1】:你想要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')
【讨论】:
谢谢,我会在 n 分钟后接受。我想我应该看看库的其他部分而不是数组方法,我想这更有意义。以上是关于Python通过numpy中的二维数组枚举[重复]的主要内容,如果未能解决你的问题,请参考以下文章
python使用numpy中的np.add函数和np.subtract函数对二维numpy数组进行相加或者相减(Adding And Subtracting Matrices)
如何从 python 中的两个 tif 文件创建二维 numpy 数组?
Python使用numpy函数vsplit垂直(行角度)拆分numpy数组(返回拆分后的numpy数组列表)实战:垂直拆分二维numpy数组split函数垂直拆分二维numpy数组
python - 如何在python numpy中标准化二维数组的一维? [复制]
Python使用numpy函数hsplit水平(按列)拆分numpy数组(返回拆分后的numpy数组列表)实战:水平(按列)拆分二维numpy数组split函数水平(按列)拆分二维numpy数组