In [333]: a = np.array([[1,2,3,4],[5,6,7,8]])
In [334]: a
Out[334]:
array([[1, 2, 3, 4],
[5, 6, 7, 8]])
Удобный способ получения значений вместе с их индексами - ndenumerate
.
In [335]: np.ndenumerate(a)
Out[335]: <numpy.lib.index_tricks.ndenumerate at 0x7f39160b5160>
In [336]: list(_)
Out[336]:
[((0, 0), 1),
((0, 1), 2),
((0, 2), 3),
((0, 3), 4),
((1, 0), 5),
((1, 1), 6),
((1, 2), 7),
((1, 3), 8)]
. Он создает iter = a.flat
a flatiter
объект, а затем повторяет его, возвращая coords
и next
.
Если вам нужны только значения, а не координаты
In [19]: list(a.flat)
Out[19]: [1, 2, 3, 4, 5, 6, 7, 8]
ndindex
можно использовать для генерации индексов для заданной фигуры:
In [20]: idx=np.ndindex(a.shape)
In [21]: [(ij, a[ij]) for ij in idx]
Out[21]:
[((0, 0), 1),
((0, 1), 2),
((0, 2), 3),
((0, 3), 4),
((1, 0), 5),
((1, 1), 6),
((1, 2), 7),
((1, 3), 8)]