ndarray.flat

ndarray.flat

Метод ndarray.flat одномерный итератор массива, т.е. перебирает элементы массива так, словно он сжат до одной оси.

Смотрите так же: flatten, ravel, reshape

Примеры

>>> import numpy as np
>>> 
>>> a = np.arange(10, 30, 2)
>>> 
>>> a
array([10, 12, 14, 16, 18, 20, 22, 24, 26, 28])
>>> 
>>> a.flat[5]
20
>>> 
>>> a = a.reshape(2, 5)
>>> a
array([[10, 12, 14, 16, 18],
       [20, 22, 24, 26, 28]])
>>> 
>>> a.flat[5]
20
>>> 
>>> a = a.reshape(5, 2)
>>> a
array([[10, 12],
       [14, 16],
       [18, 20],
       [22, 24],
       [26, 28]])
>>> 
>>> a.flat[5]
20
>>> 
>>> a = a.T
>>> a
array([[10, 14, 18, 22, 26],
       [12, 16, 20, 24, 28]])
>>> 
>>> a.flat[5]
12
>>>
>>> np.array(a.flat)
array([10, 14, 18, 22, 26, 12, 16, 20, 24, 28])
>>> 
>>> for i in a.flat:
...     print(i)
... 
10
14
18
22
26
12
16
20
24
28
>>>
>>>
>>> iter_a = a.flat
>>> 
>>> iter_a.coords
(0, 0)
>>> iter_a.__next__()
10
>>> iter_a.coords
(0, 1)
>>> iter_a.__next__()
14
>>> iter_a.coords
(0, 2)

ndarray.flat является экземпляром класса numpy.flatiter.

>>> type(a.flat)
<class 'numpy.flatiter'>