Пакет NumPy предоставляет функцию flatten(), которая позволяет вернуть копию массива, свернутого в одномерный массив.
Синтаксис функции
Функция имеет элементарный синтаксис, как показано ниже:
ndarray.flatten(order=‘C’)
Параметры функции
Функция принимает только один параметр. Параметр порядка используется для определения порядка выравнивания массива.
Параметр заказа принимает следующие значения:
- ‘C’ — указывает функции сгладить массив в порядке строк.
- ’F’ — сгладить массив в порядке столбцов.
- ’A’ — сгладить массив в порядке строк, если массив является непрерывным на Фортране, и в порядке столбцов, если в противном случае.
- ’K’ — сгладить массив по порядку элементов (в памяти).
По умолчанию функция сортирует входной массив в порядке возрастания строк.
Возвращаемое значение
Затем функция вернет копию входного массива, но сглаженную до 1D.
Пример 1
Чтобы проиллюстрировать, как работает функция, рассмотрим пример, показанный ниже:
# import numpy
import numpy as np
arr = np.array([[12,32,6], [3,45,23]])
flattened = arr.flatten()
print(f«original: {arr}»)
print(f«flattened: {flattened}»)
Приведенный выше код берет 2D-массив и сглаживает его в 1D-массив, как показано в выходных данных ниже:
original: [[12 32 6]
[ 3 45 23]]
flattened: [12 32 6 3 45 23]
Пример 2
Мы также можем применить ту же операцию к многомерному массиву. Код показан ниже:
arr_3d = np.array([[1,2,3], [0,4,5,], [9,4,6]])
flat = arr_3d.flatten()
print(f«original: {arr_3d}»)
print(f«flattened: {flat}»)
Это должно вернуть:
original: [[1 2 3]
[0 4 5]
[9 4 6]]
flattened: [1 2 3 0 4 5 9 4 6]
Пример 3
Давайте посмотрим, что произойдет, когда мы изменим параметр порядка на «F». Рассмотрим код, показанный ниже:
arr = np.array([[12,32,6], [3,45,23]])
flattened = arr.flatten(order=‘F’)
print(f«original: {arr}»)
print(f«flattened: {flattened}»)
В этом примере функция упорядочивает массив в порядке столбцов. Результирующий массив выглядит так:
original: [[12 32 6]
[ 3 45 23]]
flattened: [12 3 32 45 6 23]
Пример 4
Заказ через параметр «A» возвращает массив, как показано:
arr = np.array([[12,32,6], [3,45,23]])
flattened = arr.flatten(‘A’)
print(f«original: {arr}»)
print(f«flattened: {flattened}»)
Порядок «А» действует как «умный» вариант, который выбирает сортировку на основе типа массива. В приведенном выше примере функция выравнивает массив в порядке убывания строк.
original: [[12 32 6]
[ 3 45 23]]
flattened: [12 32 6 3 45 23]
Пример 5
Параметры ’K’ возвращают массив, как показано ниже:
arr = np.array([[12,32,6], [3,45,23]])
flattened = arr.flatten(‘K’)
print(f«original: {arr}»)
print(f«flattened: {flattened}»)
Выход:
original: [[12 32 6]
[ 3 45 23]]
flattened: [12 32 6 3 45 23]
Заключение
В статье мы рассмотрели функцию flatten в NumPy для сведения входного массива к одному измерению. С помощью примеров мы проиллюстрировали поведение функции при разных параметрах порядка.