2022/04/07

1) 학습한 내용

Numpy

넘파이(Numpy)는 Python에서 벡터, 행렬 등 수치 연산을 수행하는 선형대수(Linear algebra) 라이브러리로 선형대수 관련 수치 연산을 지원하고 내부적으로는 C로 구현되어 있어 연산이 빠른 속도로 수행된다. 또한 Scipy와 함께 사용하면 공학용 소프트웨어인 MATLAB에 버금가는 기능을 지원한다고 알려졌다. 넘파이는 다차원 배열 객체와 배열과 함께 작동하는 도구들을 제공한다. 하지만 넘파이 자체로는 고수준의 데이터 분석 기능을 제공하지 않기 때문에 넘파이 배열과 배열 기반 컴퓨팅의 이해를 통해 판다스와 같은 도구를 좀 더 효율적으로 사용하는 것이 필요하다.

먼저 넘파이를 사용하기 위해서는 아래와 같은 코드로 numpy를 import해야 한다.

import numpy as np

사실상, 넘파이를 설치하고 단순히 import numpy 만 해도 되지만, 이를 코드에서 보다 편하게 사용하기 위해 as np 를 붙임으로써 np라는 이름으로 넘파이를 사용한다.

NumPy의 배열은 파이썬에서 제공하는 배열보다 빠르고 유연한 기능들을 제공한다.

np.zeros((3,3))
array([[0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.]])

np.ones((3,3))
array([[1., 1., 1.],
       [1., 1., 1.],
       [1., 1., 1.]])

아래는 ndarry를 Jupyter notebook으로 작성한 것이다.

ndarray 배열 슬라이싱 하기

7,8,9
# 배열 슬라이싱
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
arr_1 = arr[:2,1:3]
print(arr_1)
[[2 3]
 [5 6]]
arr.shape
(3, 3)
:
arr_int = np.arange(10)
print(arr_int[:])
[0 1 2 3 4 5 6 7 8 9]
,2
print(arr[0,2])
3

Pandas

판다스(pandas)는 파이썬 언어로 작성된 데이터를 분석 및 조작하기 위한 소프트웨어 라이브러리이다. 판다스는 수치형 테이블과 시계열 데이터를 조작하고 운영하기 위한 데이터를 제공하는데, 3조항 BSD 라이선스 조건 하에서 무료로 사용 가능하다. 판다스의 이름은 계량 경제학에서 사용되는 용어인 'PANel DAta'의 앞 글자를 따서 지어졌다.

판다스는 R에서 사용되던 data.frame 구조를 본뜬 DataFrame이라는 구조를 사용하기 때문에, R의 data.frame에서 사용하던 기능 상당수를 무리없이 사용할 수 있도록 만들었다.

더욱이 파이썬이라는 접근성이 좋은 언어 기반으로 동작하기 때문에 데이터 분석을 파이썬으로 입문하는 사람들이 필수적으로 사용하는 라이브러리가 되었다.

판다스는 두 가지 주요 데이터 구조인 Series 및 DataFrame은 재무, 통계, 사회 과학 및 다양한 엔지니어링 분야의 일반적인 사용 사례의 대부분을 처리한다.

파이썬을 이용한 데이터 전처리 분야에는 일반적으로 가장 많이 사용된다. 그리고, 데이터의 조회나 집계를 위한 기능들도 많이 포함되어 있고 일부 문법은 SQL과도 유사한 면이 있다.

판다스에 관한 자료

자료구조: Seires와 Dataframe

Pandas에서 제공하는 데이터 자료구조는 Series와 Dataframe 두가지가 존재하는데 Series는 시계열과 유사한 데이터로서 index와 value가 존재하고 Dataframe은 딕셔너리데이터를 매트릭스 형태로 만들어 준 것 같은 frame을 가지고 있다. 이런 데이터 구조를 통해 시계열, 비시계열 데이터를 통합하여 다룰 수 있다.

Matplotlib

Matplotlib는 Python 프로그래밍 언어 및 수학적 확장 NumPy 라이브러리를 활용한 플로팅 라이브러리로, Tkinter , wxPython , Qt 또는 GTK 와 같은 범용 GUI 툴킷을 사용하여 애플리케이션에 플롯을 포함 하기 위한 객체 지향 API를 제공한다. Matplotlib은 매트랩과 유사하게 설계된 상태기계(예: OpenGL )을 기반으로 하는 절차적 "pylab" 인터페이스도 있지만 사용은 권장되지 않는다. SciPy는 Matplotlib을 활용한다.

Matplotlib은 원래 John D. Hunter가 작성했으며, 그 이후로 활발한 개발 커뮤니티가 생성되었으며, BSD 스타일 라이선스 하에 배포되었다 . Michael Droettboom은 2012년 8월 John Hunter가 사망하기 직전에 matplotlib의 수석 개발자로 지명되었으며 Thomas Caswell이 추가로 합류했었다. Matplotlib는 NumFOCUS 재정 후원 프로젝트이다.

Matplotlib 2.0.x는 Python 버전 2.7~3.10을 지원하다가 Python 3 지원은 Matplotlib 1.2부터 시작되었다. Matplotlib 1.4는 Python 2.6을 지원하는 마지막 버전으로 Matplotlib는 Python 3 선언문에 서명하여 2020년 이후 Python 2를 지원하지 않을 것을 약속했다.

2) 학습내용 중 어려웠던 점

판다스를 실행하다가 간혹 파일 위치를 잘못 작성한다면 거기에서 꼬여버리기 십상이다. 사실 이건, 프로그래밍을 하는 사람이라면 반드시 발생할 수 밖에 없었다.

3) 해결방법

그래서 나는 같이 배우는 사람에게 질문을 했었고 오랜 고민 끝에 나는 파일 위치에 문제가 있다는 걸 알고 바로 잡았다.

4) 학습소감

이번 수업은 넘파이와 판다스에 관한 설명과 코딩법을 배웠다. 수업은 잘 따라갔었지만, 이걸 머릿 속에 집어넣을 때까지 배워야 한다는 걸 염두해야 한다.

좋은 웹페이지 즐겨찾기