Выравнивание массива с помощью 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 для преобразования массива по столбцам и по строкам. Наконец, вы узнали, как использовать метод для преобразования списка списков.
Дополнительные ресурсы
Чтобы узнать больше о схожих темах, ознакомьтесь с нижеприведенными учебными пособиями:
Последнее обновление