AI 부트캠프 | Week 6-1) (#numpy, #pandas)

Gomcha ·2023년 8월 27일
0

FC AI 6기 부트캠프

목록 보기
7/13
post-thumbnail

1. numpy

01 numpy 배열

01-1) 배열 속성

  • ndarray.shape : 배열의 각 축(axis)의 크기
  • ndarray.ndim : 축의 개수(Dimension)
  • ndarray.dtype : 각 요소(Element)의 타입
  • ndarray.itemsize : 각 요소(Element)의 타입의 bytes 크기
  • ndarray.size : 전체요소(Element)의 개수

01-2) 배열 생성

다양한 차원의 데이터 생성

  • np.zeros(shape) : 0으로 구성된 N차원 배열 생성
  • np.ones(shape) : 1로 구성된 N차원 배열 생성
  • np.empty(shape) : 초기화되지 않은 N차원 배열 생성

01-3) 연속 데이터 생성

np.arange/np.linspace를 이용하여 연속적 데이터 생성

  • np.arange : N만큼 차이나는 숫자 생성
  • np.linspace : N등분한 숫자 생성
    차이점
  • np.arange([start],stop,[step]..)
    - []생략 가능, 끝값 포함 안 함
    - 장점 : step, 범위를 구간, 간격 강조할 때 사용
  • np.linspace(start, stop, num=50...)
    - 처음 값과 끝 값 포함, 몇 개로 만들지 매개변수로 줌
    - 장점 : 개수 강조할 때 사용

02 numpy 연산

02-1) 기본 연산

  • 자동형변환
    - 수치 연산 진행할 때, 각각 .dtype이 다르면 타입 큰 쪽으로 자동 변경(int<float<complex)

집계함수

  • .sum
  • .min/.max : 최소 및 최대
  • .argmax : 모든 요소 중 최대값의 인덱스
  • .cumsum : 모든 요소의 누적합

02-2) 인덱싱 및 슬라이싱

  • 인덱싱 과 슬라이싱
    : 각각 문자열에서 한 개 또는 여러 개를 가리켜서 값을 가져오는 것

02-3) 크기 변경

np.ndarray의 shape를 다양한 방법으로 변경 가능

  • .ravel : 1차원으로 변경
  • .reshape : 지정한 차원으로 변경
  • .T : 전치(Transpose) 변환

02-4) 데이터 합치기

np.vstack()와 np.hstack()를 통해 데이터 합치기

  • np.vstack() : axis=0 기준으로 쌓음
  • np.hstack() : axis=1 기준으로 쌓음

2. pandas

01 pandas 기본개념

01-1) 데이터 형태

  • series : 데이터가 순차적으로 나열된 1차원 배열 형태(index와 value가 일대일 대응)
  • DataFrame : 행과 열로 만들어지는 2차원 배열 형태(열은 각각 시리즈의 객체)

01-2) 데이터 내용 확인

  • .columns : 컬럼명 확인
  • .head() : 데이터의 상단 5개 행 출력
  • .tail() : 데이터 하단 5개 행 출력
  • .shape : 행, 열 크기 확인
  • .info() : 데이터 전반적인 정보 제공
  • .type() : 데이터 타입 확인

02 pandas 데이터 확인

02-1) 데이터 필터링

  • 불리언인덱싱 : True 값을 가진 행만 추출
  • .isin() : 각각 요소가 데이터프레임 또는 시리즈에 존재하는지 파악하여 True/False 값 반환
  • 불리언 인덱싱 + .isin() : 데이터의 특정 범위만 추출
  • .isna() : 결측값은 True 반환, 그 외는 False 반환
  • .notna() : 결측 값은 False 반환, 그외는 True 반환

02-2) 결측치 제거

  • .dropna(axis=0) == .dropna()
    : 결측 값이 들어있는 행 전체 삭제
  • .dropna(axis=1)
    : 결측 값이 들어있는 열 전체 삭제

02-3) 인덱스

  • .loc[] : 행 이름과 열 이름을 사용
  • .iloc[] : 행 번호와 열 번호를 사용

02-4) 데이터 통계

  • .mean() : 평균값
  • .meadian() : 중앙값
  • .describe() : 다양한 통계량 요약 => mean, std, min, 25%, 50%, 75%, max
  • .agg() : 여러 개의 열에 다양한 함수 적용
    - 모든 열에 여러 함수 매핑 : group객체.agg([함수1, 함수2...])
    - 각 열마다 다른 함수 매핑 : group객체.agg({'열1':함수1, '열2':함수2,..)
  • .groupby() : 그룹별 집계
  • .value_counts() : 값의 개수

03 데이터 추가

  • 행 추가
    : DataFrame.loc['새로운 행 이름'] = 데이터 값
  • 열 추가
    : DataFrame['추가하려는 열 이름'] = 데이터 값
  • 행 삭제
    : DataFrame.drop(index, axis = 0)
  • 열 삭제
    : DataFrame.drop(변수명, axis = 1)
profile
공부하는 데이터 분석가 👩‍💻

0개의 댓글