9. 배열(array)과 표(table)

j_hyun11·2021년 12월 31일
0

FUNDAMENTAL

목록 보기
1/11

1. NumPy 주요 기능

ndarray만들기

  • ndarray 객체는 arange()와 array([])로 만들 수 있습니다.
import numpy as np

# 아래 A와 B는 결과적으로 같은 ndarray 객체를 생성합니다. 
A = np.arange(5)
B = np.array([0,1,2,3,4])  # 파이썬 리스트를 numpy ndarray로 변환

# '4'가 있어서 모두 문자열로 바뀝니다
C = np.array([0,1,2,3,'4'])

# D도 A, B와 같은 결과 
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)
# 0 행렬
np.zeros([2,3])
# 1행렬
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. 데이터의 행렬 변환_이미지

이미지와 관련된 파이썬 라이브러리

  • matplotlib
  • PIL

간단한 이미지 조작

  • 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(): 퍼센트 변화율을 계산

0개의 댓글