본문 바로가기

파이선

시작하기전 개념 설명 (chap1)

 

# 필수 파이썬 라이브러리
내 기억에 처음에는 numpy가 개발되었는데, 좀더 쉽게 Sql, 엑셀과 같은 표 형태의 데이타를 처리하기 위해서 Pandas가 개발된 것으로 알고 있다

예전에 생활코딩에 이고잉님이 이런 이야기를 한적이 있다.
데이타를 정리하기 위해서 라는 row , column의 아주 훌륭한 정리법이라고,
세무사에서 기업의 재무재표등을 계산하는것도 처음에는 엑셀부터 시작하고
실제 DB에서 정보를 출력하는 형태도 Grid표 이다.

 


1) Numpy : 파이썬 산술 계산의 추줓돌 같은 라이브러리 

  • 자료구조, 알고리즘 산술 데이터를 다룸
  • 다차원 배열객체 ndarry
  • 배열 원소를 다루거나 배열간의 수학계산 수행
  • 디스크로 부터 배열기반의 데이타 읽고 쓰기 가능
  • 선형대수 계산, 푸리에 변환, 난수 생성기
  • Numpy자료구조 접근 가능한 C API수치데이타라면
    Numpy배열은 파이선 내장 자료구조 보다 훨씬 효율적인 방법으로 데이타를 저장하고 관리 가능



2) Pandas

pandas를 처음 개발할때, R의 핵심 기능을 구현했다고 한다. (R이 pandas보다 더 오래되었다.)

# 생각해 볼 꺼리
1. sql로 조회한 데이타에 대해서 pandas를 이용해야 하는 경우는 어떤 경우일까?
 - sql에도 sum, avg, min, max등에 기본적인 통게함수를 제공한다.
 - 우리는 sql로 많은 통계 쿼리를 작성해왔고, 지금도 많이 사용한다.
 - Grid표로 제공되고, python으로 DB에 접속해서 DataFrame형태로 결과를 Converting할 수 있다.
 
2. Sql에서 할수 있는 것을 pandas로 대부분 할수 있다.
3. Sql vs Pandas의 속도
 - 결과 데이타를 csv로 생성해서 1000만건의 sql(result-Set)과 csv의 10000만건 처리한다고 
   가정하는 경우 속도의 성능차이는 어떻게 될까? 
  • 구조화된 데이타나 표형식
  • 표형태의 Row,컬럼을 가지는 DataFrame
  • 1차원 배열 객체인 Series

3) matplotlib
    그래프나 2차원 데이타 시각화

 

4) IPython, Jupyter

    IPython프로젝트를 웹 기반으로 진행한 프로젝트가 Jupyter이다.

    요즘은 일반적으로 Jupyter를 기본으로 많이 사용한다.

    IPython의 화면도 Jupyter와 비슷하게 구성된것을 볼 수 있다.

ipython실행
anacond에서 IPython, Jupyter모두 제공하는 화면

5) Scipy(사이파이)

    과학 계산 컴퓨팅 영역의 여러 기본 문제를 다루는 패키지 모음

    L 미분방정식, 선형대수, 희소행렬 등

    Numpy와 Scipy를 함께 사용하면, 전통적인 과학 계산 어플리게이션에서 제공하는 대부분 기능 대체 가능

 

6) scikit-learn(사이킷런)

    파이선 개발자를 위한 범용 머신러닝 도구로 자리잡기 시작

  • 분류 : SVM, 최접근이웃, 랜덤 포레스트...등
  • 희귀 : 라소, 리지
  • 클러스터링 : k-평균...등
  • 차원 축소 : PCA...등
  • 모델 선택 : 교차검증, 행렬..등
  • 전처리 : 특징추출, 정규화

 

7) statsmodels

    R언어용 회귀분석 모델을 구현한 통계분석 패키지 이다.

    사이키런과 비교하면, 전통적인 통계(주로 빈도주의적 접근)과 계량경제학 알고리즘을 포함