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 数组的切片操作

Python使用numpy函数vsplit垂直(行角度)拆分numpy数组(返回拆分后的numpy数组列表)实战:垂直拆分二维numpy数组split函数垂直拆分二维numpy数组

python - 如何在python numpy中标准化二维数组的一维? [复制]

Python使用numpy函数hsplit水平(按列)拆分numpy数组(返回拆分后的numpy数组列表)实战:水平(按列)拆分二维numpy数组split函数水平(按列)拆分二维numpy数组