오늘은
- 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에서 무언가를 생성할 때 재료를 공급
- 재료 : 노이즈(잡음), 벡터 -> 랜덤하게 구성(멤버들을 구성한 배열)
- 원리
- 잡음 백터 -> 모델 통과-> 이미지 생성
- 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진수)
- 부호가 있음 : 음수, 0, 양수 : signed
- 8비트, 1바이트는 값의 표현 범위가
- 객체형
- 객체, 문자열, 유니코드(각국 문자)
- 수치형
- dtype

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차원
- 배열 + 인덱스 + 컬럼
- Series
- 작업
- 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
기본 인덱싱
- 차원 축소
- 타겟 : 컬럼 기반


