파이썬

파이썬으로 다차원 1차원으로 만들기(평탄화).

Blue_bull 2025. 4. 11. 10:35

"평탄화(flatten)"는 다차원 배열이나 리스트를 1차원 리스트로 펼치는 작업입니다.


Python에서 평탄화(flatten)하는 방법

1. 🔹 numpy.flatten() (배열 전용)

import numpy as np

arr = np.array([[1, 2], [3, 4]])
flat = arr.flatten()
print(flat)  # [1 2 3 4]

✔️ 결과는 1차원 numpy.ndarray


2. 🔹 리스트 컴프리헨션

nested = [[1, 2], [3, 4]]
flat = [item for sublist in nested for item in sublist]
print(flat)  # [1, 2, 3, 4]

✔️ 2차원 list만 가능(파이썬 기본문법).


3. 🔹 itertools.chain.from_iterable()

from itertools import chain

nested = [[1, 2], [3, 4]]
flat = list(chain.from_iterable(nested))
print(flat)  # [1, 2, 3, 4]

✔️ 2차원 list만 가능( itertools 라이브러리 활용).


4. 🔹 재귀적으로 깊이 중첩된 리스트 평탄화 (2차원 이상)

def flatten_recursive(lst):
    flat = []
    for item in lst:
        if isinstance(item, list):
            flat.extend(flatten_recursive(item))
        else:
            flat.append(item)
    return flat

nested = [1, [2, [3, 4]], 5]
print(flatten_recursive(nested))  # [1, 2, 3, 4, 5]

'파이썬' 카테고리의 다른 글

파이썬 반복문  (0) 2025.04.11