[KT] AIVLE School/사전학습

데이터 조작 이해와 실무 (1) - 데이터 선택

Boxya 2025. 3. 12. 15:40

다차원 배열 vs Dataframe

  다차원 배열 Dataframe
활용 예시 딥러닝 Input 데이터 (3차원 이상의 배열) 통계 분석 / 머신러닝
구현 방식 Numpy 라이브러리 Pandas 라이브러리

Numpy 라이브러리

  • 설치 방법 : conda install numpy
  • 고속 연산
    • 파이썬 리스트에 비해 빠른 속도와 좋은 메모리 효율
    • 선형대수 연산이 가능
    • 쉬운 데이터 배열 처리 (반복문 필요 없음)
  • 쉽고 빠른 배열 변환
  • 다양한 함수 제공
    • 축(axis)에 따른 집계 연산 가능
    • 배열의 형태 조건이 맞으면 다른 배열과 연결 가능
    • 손쉬운 랜덤 샘플링 가능

Numpy 배열

  • Numpy가 제공하는 ndarray의 shape/ndim/size 속성을 이용하면 배열의 형태/차원/원소 개수 파악 가능
1D array 2D array 3D array
shape : (4,) shape : (4,4) (행, 열) shape : (2,4,4) (면, 행, 열)
ndim : 1 ndim : 2 ndim : 3
size : 4 size : 16 size : 32

Pandas 라이브러리

  • 설치 방법 : conda install pandas
  • 강력한 스프레드시트 처리 : 쉽고 빠르게 원하는 데이터 선택 가능
  • 데이터 통계 분석 : 같은 그룹 끼리 묶어 특정 그룹군의 여러 통계 연산 수행 가능

Pandas 데이터 구조

  • Pandas는 크게 Dataframe과 Series로 구분하여 나타낼 수 있음
  • Dataframe
    • 엑셀의 스프레드시트 형태의 자료를 Pandas에선 Dataframe이라고 부름
    • Pandas의 자료형 중 하나이며 컬럼을 의미하는 Series 자료형과 행을 의미하는 Record로 구분지을 수 있음
  • Series
    • Pandas의 1차원 데이터 자료형이며 같은 형태의 데이터만 저장하여 다룰 수 있음
    • 각 Series는 Dataframe의 열로 구성
  • Record
    • Dataframe의 행, 관측치의 일련의 값들을 저장
    • 관측치가 각 컬럼으로부터 어떤 값들을 가지고 있는지 표현

Numpy 데이터 선택

  • N차원 배열에서 특정 면/행/열 등을 탐색하거나 조건에 맞는 데이터를 확인하고자 할 때 사용
  • Slicing
    • 배열을 쉽게 자를 수 있음
    • ex) arr[1,:]
  • Indexing
    • 리스트와 다르게 [x, y] 표기법 가능
    • ex) arr[1,0]
    • Boolean Indexing
      • 특정 조건에 따른 값을 배열로 추출
      • ex) arr[arr>3]
    • Fancy Indexing
      • 배열에 인덱싱 값을 주어 변환
      • ex) arr[[0,0]]

Pandas 데이터 선택

  • Dataframe에서 특정 열/행을 탐색하거나 조건에 맞는 데이터를 확인하고자 할 때 사용
  • Numpy와 동일하지만 배열이 아닌 Dataframe 또는 Series에 대한 인덱싱, 슬라이싱
  • Slicing
    • ex) df[0: 2]
  • Indexing
    • ex) df['a]
  • Boolean Indexing
    • ex) df[ df['a] > 20 ]
  • Fancy Indexing
    • ex) df[['a', 'b']]
  • loc 인덱서
    • 사용법 : df.loc[행, 원하는 열의 이름]
    • loc는 원하는 행렬의 이름을 정확히 입력 필요
    • ex) df.loc['0', 'a'] , df.loc[0, ['a', 'b']]
  • iloc 인덱서
    • 사용법 : df.iloc[행, 열의 순서]
    • iloc는 원하는 열의 번호를 정확히 입력 필요
    • ex) df.iloc[1, 0], df.iloc[1, [0,1]]