1. NumPy 주요 기능
ndarray만들기
- ndarray 객체는 arange()와 array([])로 만들 수 있습니다.
import numpy as np
A = np.arange(5)
B = np.array([0,1,2,3,4])
C = np.array([0,1,2,3,'4'])
D = np.ndarray((5,), np.int64, np.array([0,1,2,3,4]))
크기 (size, shape, ndim)
- ndarray.size :행렬 내 원소의 개수
- ndarray.shape : 행렬의 모양
- ndarray.ndim : 행렬의 축 개수
- reshape() : 행렬의 모양을 바꿈
type
- NumPy: numpy.array.dtype
- 파이썬: type()
특수 행렬
np.eye(3)
np.zeros([2,3])
np.ones([3,3])
브로드캐스트
- 브로드캐스팅 : ndarray와 상수, 또는 서로 크기가 다른 ndarray끼리 산술연산이 가능한 기능
A = np.arange(9).reshape(3,3)
B = np.array([1, 2, 3])
print("\nA+B:", A+B)
슬라이스와 인덱싱
- NumPy도 파이썬 내장 리스트와 비슷한 슬라이스와 인덱싱 연산을 제공
random
- np.random.randint(): ~ 사이 1개 난수 하나를 생성
- np.random.choice(): 리스트에 주어진 값 중 하나를 랜덤하게 골라줍니다.
- np.random.permutation(): 무작위로 섞인 배열을 만들어 줍니다.
- np.random.normal(): 정규분포를 따르는 변수를 임의로 표본추출해 줍니다.
- np.random.uniform(): 균등분포를 따르는 변수를 임의로 표본추출해 줍니다.
전치행렬
arr.T: 행렬의 행과 열 맞바꾸기
np.transpose: 축을 기준으로 행렬의 행과 열 바꾸기
2. 데이터의 행렬 변환_이미지
이미지와 관련된 파이썬 라이브러리
간단한 이미지 조작
- open : Image.open()
- size : Image.size
- filename : Image.filename
- crop : Image.crop((x0, y0, xt, yt)) 이미지 자르기
- resize : Image.resize((w,h))
- save : Image.save()
from PIL import Image, ImageColor
import os
img_path = os.getenv("HOME") + "이미지 경로"
img = Image.open(img_path)
import numpy as np
img_arr = np.array(img)
PIL.Image.Image 클래스는 리스트를 상속받지 않았지만 array_interface라는 속성이 정의되어 있어서 Numpy ndarray로 변환 가능
img_g = Image.open(img_path).convert('L')
red = ImageColor.getcolor('RED','RGB')
reda = ImageColor.getcolor('red','RGBA')
yellow = ImageColor.getcolor('yellow','RGB')
3. 구조화된 데이터와 pandas
Series
- 일련의 객체를 담을 수 있는, 1차원 배열과 비슷한 자료 구조
- 배열 형태인 리스트, 튜플, 딕셔너리를 통해서 만들거나 NumPy 자료형(정수형, 실수형 등)으로도 만들 수 있습니다.
data = {'Region' : ['Korea', 'America', 'Chaina', 'Canada', 'Italy'],
'Sales' : [300, 200, 500, 150, 50],
'Amount' : [90, 80, 100, 30, 10],
'Employee' : [20, 10, 30, 5, 3]
}
s = pd.Series(data)
s
DataFrame
- 표(table)와 같은 자료 구조
- DataFrame은 여러 개의 컬럼을 나타낼 수 있습니다.
- csv 파일이나 excel 파일을 DataFrame으로 변환하는 경우가 많습니다.
d = pd.DataFrame(data)
d
4. pandas와 함께 EDA 시작하기
EDA - 통계
- .value_counts(): 각 범주(Case 또는Category)별로 값 반환
- .value_counts().sum(): 컬럼별 통계 수치의 합을 확인
- .sum(): 해당 컬럼 값의 총합
- .corr(): 두 컬럼 내 데이터가 얼마만큼의 상관관계가 있는지를 나타낸것(2개의 매개변수가 필요)
pandas 통계 관련 메서드
- count(): NA를 제외한 수를 반환
- describe(): 요약 통계를 계산
- min(), max(): 최소, 최댓값을 계산
- sum(): 합을 계산
- mean(): 평균을 계산
- median(): 중앙값을 계산
- var(): 분산을 계산
- std(): 표준편차를 계산
- argmin(), argmax(): 최소, 최댓값을 가지고 있는 값을 반환
- idxmin(), idxmax(): 최소, 최댓값을 가지고 있는 인덱스를 반환
- cumsum(): 누적 합을 계산
- pct_change(): 퍼센트 변화율을 계산