Rucrazia's Blog

파이썬(Python) 데이터 분석 라이브러리 본문

기술 - Data Science/Data Science

파이썬(Python) 데이터 분석 라이브러리

DoyoungJ 2018. 7. 30. 20:00

DATA SCIENCE LIBRARY

Numpy

NumPy는 프로그래머가 고성능 배열 및 행렬을 사용하는데 사용할 수 있는 다양한 기능을 제공합니다. NumPy 배열은 수학 연산의 벡터화를 제공하므로 파이썬의 루핑 구문에 비해 성능이 향상됩니다.

pandas library의 Series 및 DataFrame 객체는 요소를 자르고 벡터 작업을 수행하는 것과 같은 모든 수학적 계산을 위해 주로 NumPy 배열에 의존합니다. NumPy를 사용하여 대규모 다차원 배열 및 행렬을 사용하는 것은 매우 쉽습니다.

NumPy의 또 다른 장점은 루프를 작성하지 않고도 표준 수학 연산을 전체 데이터 세트에 적용 할 수 있다는 것입니다. 저수준 언어 (예 : C 또는 C ++)로 작성된 외부 라이브러리로 데이터를 내보내고 이러한 외부 라이브러리에서 데이터를 NumPy 배열로 가져 오는 것도 매우 쉽습니다.

- 수학 연산 : 대용량 데이터 집합에 대해 연산을 수행하는 데 필요한 모든 표준 함수를 매우 빠르고 효율적으로 제공합니다. 그렇지 않으면 루핑 구문을 통해 수행해야합니다.
ndarray : 벡터 기반 산술 연산을 수행 할 수 있고 강력한 방송 기능을 가진 빠르고 효율적인 다차원 배열입니다.
- I / O Operations : 디스크에서 매우 큰 데이터 세트를 읽고 쓰는 데 사용할 수있는 다양한 도구를 제공합니다. 또한 메모리 기반 파일 매핑에 대한 I / O 작업을 지원합니다.
- 푸리에 변환 기능, 선형 대수 및 난수 생성

 

SciPy

SciPy는 Python의 Extension NumPy 위에 구축 된 수학 함수 및 알고리즘의 모음입니다. SciPy는 데이터 조작 및 시각화를 위한 다양한 고급 명령 및 클래스를 제공합니다. SciPy는 시스템의 데이터 처리 및 프로토 타이핑에 유용합니다.  적분 및 최적화를 위한 루틴과 같은 많은 사용자 친화적이고 효율적인 수치 루틴을 제공합니다. SciPy는  데이터 과학에서 최적화 ,   선형 대수학 ,   통합 및 기타 일반 작업을 위한 모듈을 제공  합니다 .

이 외에도, SciPy는 강력하고 빠르게 성장하는 Python 커뮤니티가 있습니다. 수학 및 과학과 관련된 응용프로그램 및 많은 특수 응용 프로그램을 구축하는데 있어 이점을 제공합니다.

 

Pandas

데이터 분석가가 매우 간단하고 쉬운 방법으로 데이터를 조작 하는데 도움이 되는 데이터 구조들과 도구들을 갖고 있습니다. 데이터를 분석하기 위한 다중 및 단일 차원 데이터에 대한 색인 작성, 검색, 분할, 조인(join), 재구성(restructure) 및 다양한 분석 기능을 매우 간단하면서도 효과적으로 제공합니다.

[특징]
i) Series 및 DataFrame 객체
이 두 가지는 고성능 배열 및 테이블 구조로, Pandas의 이종 및 동종 데이터 세트를 나타냅니다.

ii) 데이터 세트의 재구성
Pandas는 데이터를 표 형식 데이터의 행과 열 모두에 삽입 할 수 있도록 데이터 구조를 다시 변형 할 수있는 유연성을 제공합니다.

iii) 라벨링
데이터와 색인의 자동 정렬을 위해 판다는 시리즈 및 표 데이터에 라벨을 지정합니다.

iv) 데이터 항목에 대한 다중 레이블
여러 축을 통해 분산된 데이터의 이종 인덱싱은 각 데이터 항목에 둘 이상의 레이블을 만드는 데 도움이 됩니다.

v) 그룹핑    
테이블 형식의 데이터에 대해서도 계열별로 분할 적용 적용을 수행합니다.

vi) 누락 된 데이터 식별 및 수정
프로그래머는 pandas를 사용하여 누락 된 데이터를 플로팅 및 비 플로팅 숫자로 쉽게 식별하고 혼합 할 수 있습니다.

vii) JSON, CSV, HDF5 등과 같은 다양한 형식의 데이터를 로드하고 저장하는 강력한 기능

viii) NumPy 및 Python 데이터 구조에서 판다 객체로 변환.

ix) SQL과 유사한 구조로 데이터 세트를 병합하고 결합하는 것을 포함하는 데이터 세트의 슬라이싱.

 

Statsmodels

Statsmodels는 사용자가 데이터를 탐색하고 통계 모델을 추정하며 통계 테스트를 수행 할 수있는 Python 모듈입니다. 다양한 유형의 데이터 및 추정에 대해 기술 통계, 통계 테스트, 플로팅 기능 및 통계 결과의 다양한 기능을 사용할 수 있습니다.

 

Libraries for Plotting and Visualizations

matplotlib

시각화를 위한 파이썬 모듈입니다. Matplotlib을 사용하면 선 그래프, 원형 차트, 히스토그램 및 기타 전문 학년 인물을 신속하게 만들 수 있습니다. Matplotlib을 사용하여 그림의 모든 측면을 사용자 정의 할 수 있습니다. IPython notebook에서 사용되는  경우 Matplotlib에는 확대/축소 및 이동과 같은 대화형 기능이 있습니다. 모든 운영 체제에서 다른 GUI 백엔드를 지원하며 그래픽을 PDF, SVG, JPG, PNG, BMP, GIF 등과 같은 공통 벡터 및 그래픽 형식으로 내보낼 수도 있습니다.

 

Seaborn

Seaborn은 Matplotlib 위에 구축 된 인기있는 데이터 시각화 라이브러리입니다. Seaborn의 기본 스타일과 색상 팔레트는 Matplotlib보다 훨씬 정교합니다. 히트맵, 시계열 및 바이올린 플롯을 포함하여 특정 종류의 플롯을 생성하는 것이 더 쉽습니다.

 

ggplot

ggplot은 R의 ggplot2와 Grammar of Graphics 에 기반한 파이썬 시각화 라이브러리 입니다. 구현 세부 사항을 고려하지 않고 고급 문법을 사용하여 플롯을 구성 할 수 있습니다. ggplot은 Matplotlib와 다르게 작동합니다. 사용자가 레이어 구성 요소를 사용하여 전체 플롯을 만들 수 있습니다. 예를 들어, 사용자는 축으로 시작한 다음 점을 추가 한 다음 선, 추세 선 등을 추가 할 수 있습니다. 그래픽 문법은 플로팅을 위한 "직관적인"방법으로 환영 받았지만, Matplotlib 사용자는 시간이 필요합니다. 이 새로운 사고 방식에 적응하십시오.

 

Bokeh

Bokeh는 ggplot과 달리 R에서 포팅되지 않고 Python을 기본으로 하는 라이브러리 입니다. Bokeh는 ggplot과 마찬가지로 그래픽 문법을 기반으로 합니다. 또한 스트리밍 및 실시간 데이터 처리를 지원하며 JSON 객체, HTML 문서 또는 대화식 웹 응용 프로그램으로 쉽게 출력 할 수 있는 대화식 웹 플롯을 만드는 기능이 있습니다.
Bokeh는 다양한 유형의 사용자를 수용 할 수있는 다양한 제어 기능을 갖춘 세 가지 인터페이스를 제공합니다. 최상위 레벨은 차트를 빠르게 만드는 데 사용됩니다. 막대 그래프, 상자 그래프 및 막대 그래프와 같은 일반적인 차트를 만드는 방법이 포함되어 있습니다. 중간 레벨을 사용하면 사용자는 각 차트의 기본 빌딩 블록 (예 : 산점도의 점)을 제어 할 수 있으며 Matplotlib과 동일한 특이성을 갖습니다. 최하위 수준은 개발자와 소프트웨어 엔지니어를 대상으로합니다. 미리 설정된 기본값이 없으므로 사용자가 차트의 모든 요소를 ​​정의해야합니다.

 

Plotly

데이터 시각화를 위한 온라인 플랫폼으로 널리 알려져 있습니다. Bokeh와 마찬가지로 Plotly의 강점은 대화형 플롯을 만드는 데 있으며, 윤곽 플롯 과 같이 대부분의 라이브러리에서 찾을 수없는 차트를 제공합니다 .

 

출처 

- https://www.dezyre.com/article/top-5-libraries-for-data-science-in-python/196

- http://bigdata-madesimple.com/ten-handy-python-libraries-for-aspiring-data-scientists/

- https://www.fusioncharts.com/blog/best-python-data-visualization-libraries/