Мы уже знаем, что можем создать ndarray с помощью Numpy в Python. Но если мы хотим перебрать весь массив и получить результат в массиве 1D, мы можем использовать функцию ndarray.flat().
Функция Numpy ndarray flat() работает как итератор над одномерным массивом. Это означает, что метод Numpy ndarray flat() обрабатывает ndarray как одномерный массив, а затем выполняет итерацию по нему. Функция ndarray flat() ведет себя аналогично итератору Python.
Синтаксис
|
1 |
ndarray.flat(range) |
Параметры
В приведенном выше синтаксисе — ndarray: имя данного массива.
range: указывает диапазон, в котором мы хотим напечатать значения.
Возвращаемое значение
Функция ndarray flat() возвращает одномерную итерацию данного ndarray.
Примеры программирования

Работа функции ndarray.flat()
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# importing numpy import numpy as np # Creating a 2D array using arange() of shape 3x5 arr = np.arange(15).reshape(3, 5) print("The array is:\n ", arr) print("Shape of the array is: ", np.shape(arr)) # Now we will print all the array values using flat() print("All the array values using falt(): ") print(arr.flat[0:15]) # Printing values in range 2 to 10 print("Array values of range 2-10: ") print(arr.flat[2:11]) |
Выход:
|
1 2 3 4 5 6 7 8 9 |
The array is: [[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14]] Shape of the array is: (3, 5) All the array values using falt(): [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14] Array values of range 2-10: [ 2 3 4 5 6 7 8 9 10] |
Объяснение.
В этом примере мы создали один 2D-массив формы 3 × 5, а затем распечатали все значения и форму массива. Затем мы напечатали весь массив, здесь мы задали диапазон от 0 до 15, который возвращает значение от 0 до 14. Затем мы также напечатали значения от 2 до 10.
Нахождение суммы элементов в диапазоне 2D-массива
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# importing numpy import numpy as np # Creating a 2D array using arange() of shape 3x5 arr = np.arange(15).reshape(3, 5) print("The array is:\n ", arr) print("Shape of the array is: ", np.shape(arr)) # Printing values in range 2 to 10 print("Array values of range 2-10: ") print(arr.flat[2:11]) # Printing all sum of array values of range 2 to 10 arr2 = arr.flat[2:11] print("Sum of array elements: ", np.sum(arr2)) |
Выход:
|
1 2 3 4 5 6 7 8 |
The array is: [[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14]] Shape of the array is: (3, 5) Array values of range 2-10: [ 2 3 4 5 6 7 8 9 10] Sum of array elements: 54 |
Объяснение.
В этом примере мы сначала создали один 2D-массив формы 5×3, а затем распечатали значения и форму массива. Затем мы напечатали значения в диапазоне от 2 до 10 и сохранили эти значения в arr2. Также мы напечатали сумму элементов массива, используя np.sum().
