Python 목록 유형의 2차원 배열의 행과 열 교환

사업

표준 Python 목록 유형은 목록 목록으로 2차원 배열을 나타낼 수 있습니다.

이 섹션에서는 이 2차원 배열의 행과 열을 바꾸는 방법을 설명합니다.

    1. NumPy 배열로 변환
    2. .T이것으로 전치합니다.
    1. pandas.DataFrame이것으로 변환
    2. .T이것으로 전치합니다.
  • 내장 함수 zip()을 사용한 조옮김

NumPy나 pandas를 사용하는 것이 더 쉽지만 NumPy나 pandas를 조옮김용으로만 가져오고 싶지 않다면 zip() 함수를 사용하여 조옮김할 수 있습니다.

원래의 2차원 배열은 다음과 같이 정의됩니다.

import numpy as np
import pandas as pd

l_2d = [[0, 1, 2], [3, 4, 5]]

NumPy 배열 ndarray로 변환되고 .T로 전치됨

원래의 2차원 배열에서 NumPy 배열 ndarray를 생성하고 .T 속성으로 전치된 객체를 가져옵니다.

마지막에 Python 목록 유형 개체를 원하면 tolist() 메서드를 사용하여 목록으로 추가 변환합니다.

arr_t = np.array(l_2d).T

print(arr_t)
print(type(arr_t))
# [[0 3]
#  [1 4]
#  [2 5]]
# <class 'numpy.ndarray'>

l_2d_t = np.array(l_2d).T.tolist()

print(l_2d_t)
print(type(l_2d_t))
# [[0, 3], [1, 4], [2, 5]]
# <class 'list'>

.T 속성 외에도 ndarray 메서드 transpose() 및 numpy.transpose() 함수도 사용할 수 있습니다.

pandas.DataFrame으로 변환되고 .T로 전치됨

원래 2차원 배열에서 pandas.DataFrame을 생성하고 .T 속성으로 전치된 객체를 가져옵니다.

마지막에 Python 목록 유형 객체를 원하면 values ​​속성이 있는 numpy.ndarray를 가져온 다음 tolist() 메서드를 사용하여 목록으로 변환합니다.

df_t = pd.DataFrame(l_2d).T

print(df_t)
print(type(df_t))
#    0  1
# 0  0  3
# 1  1  4
# 2  2  5
# <class 'pandas.core.frame.DataFrame'>

l_2d_t = pd.DataFrame(l_2d).T.values.tolist()

print(l_2d_t)
print(type(l_2d_t))
# [[0, 3], [1, 4], [2, 5]]
# <class 'list'>

내장 함수 zip()을 사용한 조옮김

내장 함수 zip()을 사용하여 2차원 배열을 전치합니다.

zip()은 여러 반복 가능 항목(목록, 튜플 등)의 요소를 요약하는 반복자를 반환하는 함수입니다. 예를 들어 for 루프에서 여러 목록을 실행할 때 사용됩니다.

또한, 함수는 함수 인수가 별표로 표시된 경우 목록을 확장하고 전달할 수 있는 메커니즘을 사용합니다.

전치는 다음과 같이 할 수 있습니다.

l_2d_t_tuple = list(zip(*l_2d))

print(l_2d_t_tuple)
print(type(l_2d_t_tuple))
# [(0, 3), (1, 4), (2, 5)]
# <class 'list'>

print(l_2d_t_tuple[0])
print(type(l_2d_t_tuple[0]))
# (0, 3)
# <class 'tuple'>

있는 그대로 내부 요소는 튜플입니다. 따라서 목록으로 만들려면 목록 이해 표기법에서 튜플을 목록으로 변환하는 list()를 사용하십시오.

l_2d_t = [list(x) for x in zip(*l_2d)]

print(l_2d_t)
print(type(l_2d_t))
# [[0, 3], [1, 4], [2, 5]]
# <class 'list'>

print(l_2d_t[0])
print(type(l_2d_t[0]))
# [0, 3]
# <class 'list'>

다음은 프로세스의 단계별 분석입니다.

목록의 요소는 별표로 확장되고 확장된 요소는 zip() 함수와 함께 그룹화되고 튜플은 목록 이해 표기법이 있는 목록으로 변환됩니다.

print(*l_2d)
# [0, 1, 2] [3, 4, 5]

print(list(zip([0, 1, 2], [3, 4, 5])))
# [(0, 3), (1, 4), (2, 5)]

print([list(x) for x in [(0, 3), (1, 4), (2, 5)]])
# [[0, 3], [1, 4], [2, 5]]
Copied title and URL