ASAC-SK플래닛 T아카데미 데이터 엔지니어

25.11.26 35일차 [numpy,배열, 기본 연산, 타입, 데이터 추출, | pandas 자료 구조, 점검, 데이터 추출, 인덱싱,슬라이싱, 불리언 인덱싱 ]

Datadesigner 2025. 11. 26. 17:08

오늘은

  • numpy 
    • 특수 배열
    • 기본 연산 ( 배열 대 스칼라)
    • 기본 연산 ( 배열 대 배열)
    • 타입
    • 데이터 추출
    • 인덱싱
    • 슬라이싱
    • 불리언 인덱싱
    • 팬시 인덱싱 
    • 배열의 중요 속성, 함수
  • pandas
    • 자료 구조
    • Series
    • DataFrame
    • 데이터 추출
    • 인덱싱

에 대한 수업이 있었다.

 


numpy

 

특수한 형태의 배열

  • 딥러닝-인공 신경망, 머신러닝- 알고리즘 등을 설계,연산,학습 시 내부적으로 활용될 가능성이 큼
 

zeros, ones, empty

  • 구성원 0, 1, 빈값(랜덤, 특정값)
  • zeros -> 데이터를 담는 그릇 (기존값에 영향(더했을때) x), 버퍼형태
    • 0에 자신을 더하면 자신이니까 복사됐다고 친다.

 

 

 
zeros_like, ones_like, empty_like
  • 동일한 목적 (0,1,비움) 에 특정 배열의 형상을 카피하여 목적을 달성함

 

eye, identity

  • 대각선이 모두 1, 나머지는 0
  • 대각선을 중심으로 대칭적 값의 분포 -> 내부적으로 사용될 확률이 높음
    • 산포행렬, iris 특성 시각화 행렬

 
 
 

 

 

random

  • 표준편차 1, 평균 0인 정규분포상에서 난수를 발생 ( 기본설정 )
  • 각 난수발생값의 범위의 분포를 적절하게 유지
  • 랜덤한 값을 가진 배열을 생성할때
    • 판별형 모델
      • 딥러닝 모델, LLM모델의 파라미터의 최초값 랜덤하게 부여 -> 학습을 통해서 파라미터가 최적화됨 -> 인공신경망 구성에 따라 파라미터의 수는 무한대로 상승하게 됨
      • 학습 -> 최적의 파라미터 값을 찾는 과정
    • 생성형 AI => 생성형 모델 => ... => GAN(간,갠) => ... =>
      • GAN에서 무언가를 생성할 때 재료를 공급
        • 재료 : 노이즈(잡음), 벡터 -> 랜덤하게 구성(멤버들을 구성한 배열)
        • 원리
          • 잡음 백터 -> 모델 통과-> 이미지 생성

 

 
 
 

 

 

기본 연산 (배열 대 스칼라)

  • 결론 : 배열의 모든 구성원에 일일이 스칼라 값이 접근하여서 연산 수행함

 

 

 
 
 

 

기본 연산 (배열 대 배열)

 
  • 동일 크기
    • 같은 위치에 존재하는 원소(멤버)간 연산 수행됨

 
 
  • 다른 크기
    • 브로드 캐스팅이 적용되어서 연산 처리됨
      • 값을 값으로 shape이 동일하게 늘려줌 -> 연산 처리

 

타입

 

 
  • 개요
    • dtype
      • 배열 1개에 대한 모든 구성원의 타입 (고유한 1개만 존재) -> 단일 타입
    • 지원
      • 수치형
        • 정수, 부동소수, 복소수, 불린
        • 크기가 복합적으로 표기 ( 8,16,32,64,128, 특수 사이즈 ) -> 데이터를 가장 최소 메모리로 표현하기 위해서 제공됨
          • 8비트, 1바이트는 값의 표현 범위가
            • 부호가 있음 : 음수, 0, 양수 : signed
              • 맨앞 1비트는 부호비트로 사용
              • 값은 7개 비트만 사용
              • -2^(n-1) ~ 2^(n-1)-1
              • -2^(8-1) ~ 2^(8-1)-1
              • -2^7 ~ 2^7
              • -128~128-1
              • -128~127까지가 정수가 표현할 수 있는 값의 범위
            • 부호가 없음 : 0, 양수 : unsigned
              • 값은 8개 비트 모두 사용
              • 0 ~ 2^(n)-1
              • 0 ~ 2^(8-1)-1
              • 0 ~ 256-1
              • 0 ~ 255
              • 255 => 0xFF (16진수)
      • 객체형
        • 객체, 문자열, 유니코드(각국 문자)

 
 

astype()

  • 타입 변경

데이터 추출

  • 인덱싱, 슬라이싱
 

인덱싱

 

 
  • 배열 [ 인덱스 (정방향|역방향) ]
  • 차원 축소
    • 2d:매트릭스-> 인덱싱 -> 1d:벡터 -> 인덱싱 -> 0d:스칼라

 

 

 

슬라이싱

  • 배열[ 시작인덱스 : 끝인덱스 : step ]
  • 차원 유지

 
 

 

 

(*) 불리언 인덱싱

  • 조건식 활용
    • 불리언이 결과인 연산 => 조건식
    • 해당 원소(멤버가) 조건을 만족하면 추출됨
    • 필터링
  • 결론
    • 조건식을 이용하여 데이터를 추출한다 -> 불리언 인덱싱

 
 

 

 

팬시 인덱싱

  • 데이터의 위치를 직접 지정 -> 추출
  • 데이터가 비연속적이어도 추출 가능
  • 추출되는 순서도 지정할 수 있음
  • 차후 pandas에서 iloc[] 표현에서 사용됨

배열의 중요 속성, 함수

 

 

 


pandas

개요

  • pandas (판더스, 팬더스)
    • Python Data Analysis Library
    • pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool, built on top of the Python programming language.
  • R <=> pandas(분석) + sklearn(머신러닝) + statsmodels(통계) + matplotlib(시각화)
  • 자료 구조
    • Series
      • 1차원
      • 배열 + 인덱스
    • DataFrame
      • 2차원
      • 배열 + 인덱스 + 컬럼
 

  • 작업
    • raw data 획득 -> 추출(수집)
    • 데이터 전처리 -> 변환 -> pandas 관여
      • 정제, 클리닝
      • 피처 엔지니어링
      • 원하는 데이터만 추출
      • 데이터 통합 (병합)
      • 집계, 피벗 등 데이터 가공
    • 분석
      • 설명 -> 정량적 지표 -> 데이터에 대한 -> 통찰 획득
      • 탐색 -> EDA -> 시각화 -> 인사이트 도출 -> 통찰 획득
      • . . .
 

 

모듈 가져오기

자료 구조

 

 

Series

  • 1차원
  • 구성 = ndarray(1차원) + 인덱스(0, 1, 2, . . . 특정값(날짜, 시간 등))

 

  • 1차원으로 데이터를 표현할때 사용
  • 1차원 -> 벡터 -> 자연어 기준 문장 한개를 벡터로 표현함 -> . . . 자연어 처리에 가장 많이 등장함. -> 벡터 디비
 

DataFrame

 

 
  • 동일한 크기(m)를 가진 Series를 n개 모으면, 데이터 프레임을 구성할 수 있음
    • shape = > (n , m)
    • 2차원
  • 특징
    • DataFrame = 인덱스 + 컬럼 + 데이터
    • DataFrame 인덱싱 => Series 인덱싱 => 값(스칼라)
    • 2d => 1d => 0d

 

  • 실습
    • 인덱스 = 20251001 부터 120일까지
    • 데이터는 랜덤,
    • 컬럼 a, b
    • 위의 조건을 만족하는 df를 구성 후 출력 (df.tail()

기초 점검

 

 
  • 데이터의 기본적인 정보를 파악 과정
    • shape : 데이터의 개수, 컬럼 수 체크
    • sampling : 상위값(head), 하위값(tail), 무작위값(sample) 체크 -> 실 데이터의 형태 확인
    • dtypes : 컬럼별 타입만 확인 가능
    • describe() : 기초 통계 확인 가능 (수치 데이터만 해당됨)
    • info : 인덱스, 결측치 체크, 타입 체크, 사용 메모리 양, 등등 다양한 정보 체크 가능
  • 기타
    • colums : 컬럼값들 체크
    • index : 인덱스값들 체크

데이터 추출

 

 

  • df상 원하는 데이터를 원하는 형태로 추출할 수 있으면 OK
 

 

기본 인덱싱

  • 차원 축소
  • 타겟 : 컬럼 기반