Python: Транспонирование списка списков (5 простых способов!)

В этом руководстве вы узнаете, как использовать Python для транспонирования списка списков, иногда называемого двумерным массивом. При транспонировании списка списков мы по существу превращаем строки матрицы в ее столбцы, а столбцы - в строки. Это очень полезный навык при изучении машинного обучения.

В этом руководстве вы узнаете, как сделать это с помощью циклов for, списочных включений, функции zip(), библиотеки itertools, а также используя популярную библиотеку numpy для выполнения этой задачи.

Содержание

  • Что означает транспонировать список списков в Python?

  • Транспонирование списка списков с помощью Numpy

  • Использование функции Zip для транспонирования списков в Python

  • Использование Itertools для транспонирования списка списков

  • Транспонирование списка списков с помощью цикла For

  • Использование списочного включения для транспонирования списков в Python

  • Заключение

Что означает транспонировать список списков в Python?

Транспонирование массивов - это распространенная функция, которую часто нужно выполнять при работе над проектами машинного обучения. Но что именно означает транспонировать список списков в Python?

Мы можем рассматривать подсписки в нашем списке списков в Python как строки матрицы. Когда мы транспонируем список списков, мы по существу превращаем строки нашей матрицы в столбцы и столбцы - в строки.

Посмотрим, как это выглядит визуально:

original = [
    [1,2,3],
    [4,5,6],
    [7,8,9]
]

transposed = [
    [1, 4, 7], 
    [2, 5, 8], 
    [3, 6, 9]
]

Транспонирование списка списков с помощью Numpy

Python предоставляет отличную утилиту numpy, которая делает работу с числовыми операциями невероятно простой! Numpy поставляется с различными типами объектов, один из которых - массив numpy. Эти массивы имеют много общего со списками Python, но также позволяют выполнять ряд полезных математических операций.

Одной из таких операций является транспонирование данных с использованием метода .transpose(), который также может быть сокращен до .T.

Перед использованием этих методов нам нужно преобразовать наш список или список списков в массив numpy.

Использование функции Zip для транспонирования списков в Python

Функция zip() - невероятно полезный метод, который позволяет получить n-й элемент итерируемого объекта последовательно при переборе нескольких итерируемых объектов.

Использование Itertools для транспонирования списка списков

Иногда при работе со списками списков в Python вы столкнетесь с подсписками разной длины. В этих случаях функция zip() будет исключать все, что больше длины самого короткого подсписка.

Транспонирование списка списков с помощью цикла For

Циклы for в Python - это невероятные инструменты для лучшего понимания работы некоторых алгоритмов.

Использование списочного включения для транспонирования списков в Python

Заключение

В этой статье вы научились транспонировать список списков или двумерный массив в Python. Вы узнали, как сделать это с помощью популярной библиотеки для науки о данных numpy, а также используя встроенную функцию zip(), либо самостоятельно, либо с библиотекой itertools. Вы также изучили более простые методы выполнения этой задачи с помощью циклов for и списочных включений в Python.

Чтобы узнать больше о методе numpy transpose, ознакомьтесь с официальной документацией здесь

Последнее обновление