Выравнивание массива с помощью NumPy flatten
В этом руководстве вы научитесь понижать размерность массива с помощью функции flatten
в NumPy, что означает преобразование массива в одномерный массив. Функция flatten
в NumPy позволяет превратить многомерный массив в одномерный. Функция позволяет легко понижать размерность массивов различными способами, включая по столбцам и по строкам.
К концу этого урока вы узнаете:
Как сгладить массив NumPy по строкам
Как сгладить массив NumPy по столбцам
Содержание
Понимание функции выравнивания NumPy
Перед тем как погрузиться в изучение использования функции flatten
в NumPy, давайте рассмотрим, как эта функция работает. По сравнению с многими другими функциями NumPy, эта функция относительно проста.
Метод принимает один необязательный параметр, order=
, который определяет способ плоского развертывания массива. Давайте рассмотрим определение метода:
# Понимание метода flatten в NumPy
import numpy as np
ndarray.flatten(
# Порядок фильтрования (по умолчанию - 'C')
order='C'
)
В приведенном выше коде мы видим, что метод применяется к массиву. Метод возвращает копию входного массива, приведенную к одномерному виду.
Давайте быстро посмотрим, какие варианты доступны для параметра order=
'C'
, аргумент по умолчанию, преобразует массив в одномерный в стиле языка C (построчно).'F'
плоско уплощает массив по столбцам (в стиле Fortran)'A'
уплощает массив в порядке следования столбцов, если массив непрерывен в памяти.'K'
плоский массив в порядке, в котором элементы находятся в памяти
В следующем разделе вы узнаете, как выполнить выпрямление массивов NumPy по строкам с помощью функции flatten из NumPy.
Сглаживание массива NumPy по строкам
В этом разделе вы узнаете, как использовать метод flatten библиотеки NumPy для преобразования массива в одномерный, при котором элементы добавляются в соответствии с массивами, в которых они появляются. Для преобразования массивов в одномерный формат построчно можно использовать аргумент по умолчанию
Давайте посмотрим, как можно выполнить выравнивание массива NumPy по строкам:
# Фильтрование массива по строкам
import numpy as np
arr = np.array([
[1, 2, 3],
[4, 5, 6]
]) # Массив чисел со встроенными двумерными структурами данных
flattened = arr.flatten() # Фильтрование массива по строкам
print(flattened) # Вывод фильтрованного массива
# Возвращает:
# [1 2 3 4 5 6]
Давайте разберем, что мы сделали в блоке кода выше:
Мы импортировали NumPy как
np
Мы затем создали двумерный массив,
arr
Затем мы создали новый массив
flattened
, который является результатом применения метода.flatten()
к массиву.
Важно отметить, что метод не изменяет оригинальный массив, но возвращает его разглаженную копию.
Сглаживание массива NumPy по столбцам
В этом разделе вы узнаете, как развернуть массив NumPy по столбцам, то есть элементы разворачиваются в том порядке, в котором они появляются. Это означает, что сначала разворачивается первый элемент каждого массива, затем второй и так далее.
Чтобы развернуть массив NumPy по столбцам, мы можем использовать аргумент order='F'
в методе flatten.
# Фильтрование массива по столбцам
import numpy as np
arr = np.array([
[1, 2, 3],
[4, 5, 6]
]) # Массив чисел со встроенными двумерными структурами данных
flattened = arr.flatten('F') # Фильтрование массива по столбцам (по умолчанию - порядок 'C')
print(flattened) # Вывод фильтрованного массива
# Возвращает:
# [1 4 2 5 3 6]
В следующем разделе вы узнаете, как использовать NumPy для преобразования списка списков в Python в плоский список с помощью метода flatten в NumPy.
Сглаживание списка списков Python с помощью NumPy Flatten
Метод flatten в NumPy также может быть использован для выравнивания списка списков в Python. Основное ограничение здесь заключается в том, что, поскольку массивы NumPy могут содержать только числовые значения, он не может быть использован для всех типов списков списков.
Давайте посмотрим, как мы можем использовать метод flatten для преобразования в Python списка списков:
# Фильтрование списка списков при помощи NumPy flatten()
import numpy as np
list_of_lists = [
[1, 2, 3],
[4, 5, 6]
] # Список из двух вложенных списков чисел
flattened = np.array(list_of_lists).flatten() # Преобразование списка в NumPy-массив и фильтрование его
print(list(flattened)) # Вывод фильтрованного списка в виде списка чисел
# Возвращает:
# [1, 2, 3, 4, 5, 6]
Точно так же, вы можете использовать различные аргументы, чтобы изменить способ, которым эти списки списков будут выпрямлены с помощью NumPy.
Часто задаваемые вопросы
Заключение
В этом учебнике вы научились использовать метод flatten()
библиотеки NumPy. Этот метод позволяет преобразовать многомерный массив в одномерный. Сначала вы узнали, как определен метод и какой параметр доступен. Затем вы научились использовать метод flatten
для преобразования массива по столбцам и по строкам. Наконец, вы узнали, как использовать метод для преобразования списка списков.
Дополнительные ресурсы
Чтобы узнать больше о схожих темах, ознакомьтесь с нижеприведенными учебными пособиями:
Last updated