[공부 자료 : Must Have 데싸노트의 실전에서 통하는 머신러닝]
# Numpy
- Numpy 기초
배열 (array)
1차원 배열 : 리스트, 튜플 형태
2차원 배열 : 행과 열
import numpy as np
# 1차원 배열
np.array([1, 2, 3])
# array([1, 2, 3])
# 2차원 배열
np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# array([[1, 2, 3],
# [4, 5, 6],
# [7, 8, 9]])
import pandas as pd
file_url = 'https://media.githubusercontent.com/media/musthave-ML10/data_source/main/sample.csv'
sample = pd.read_csv(file_url)
sample # DataFrame
# Var_1 Var_2
# 0 1 2
# 1 3 4
# 2 2 5
# 3 5 6
# 4 3 2
# 5 1 1
# 6 2 6
# 7 5 7
# 8 6 8
# 9 7 4
# 10 7 7
# 11 8 3
# 12 9 7
# 13 3 9
# 14 2 2
# 15 1 3
# 16 2 6
# 17 2 4
# 18 3 3
np.aarray( ) : DataFrame → Array
# DataFrame -> Array
sample_np = np.array(sample)
sample_np
# array([[1, 2],
# [3, 4],
# [2, 5],
# [5, 6],
# [3, 2],
# [1, 1],
# [2, 6],
# [5, 7],
# [6, 8],
# [7, 4],
# [7, 7],
# [8, 3],
# [9, 7],
# [3, 9],
# [2, 2],
# [1, 3],
# [2, 6],
# [2, 4],
# [3, 3]])
pd.DataFrame( ) : Array → DataFrame
sample_df = pd.DataFrame(sample_np)
sample_df # DataFrame -> Array 과정에서 col 명이 날라감
# 0 1
# 0 1 2
# 1 3 4
# 2 2 5
# 3 5 6
# 4 3 2
# 5 1 1
# 6 2 6
# 7 5 7
# 8 6 8
# 9 7 4
# 10 7 7
# 11 8 3
# 12 9 7
# 13 3 9
# 14 2 2
# 15 1 3
# 16 2 6
# 17 2 4
# 18 3 3
- Numpy 다루기
Array[ ] : 인덱싱
sample_np = np.array([[2, 2, 1, 4, 3], [4, 4, 3, 7, 1], [2, 4, 1, 2, 3], [1, 5, 3, 6, 2]])
sample_np
# array([[2, 2, 1, 4, 3],
# [4, 4, 3, 7, 1],
# [2, 4, 1, 2, 3],
# [1, 5, 3, 6, 2]])
sample_np[0] # 0번 row
# array([2, 2, 1, 4, 3])
sample_np[0, 2] # 0번 row, 2번 col
# 1
sample_np[0:3, 2:4] # 0 ~ 2번 row, 2 ~ 3번 col
# array([[1, 4],
# [3, 7],
# [1, 2]])
sample_np[:, 2] # 모든 row, 2번 col
# array([1, 3, 1, 3])
배열의 사칙 연산
np_a = np.array([[1, 3], [0, -2]])
np_a
# array([[ 1, 3],
# [ 0, -2]])
np_a + 10
# array([[11, 13],
# [10, 8]])
np_a * 2
# array([[ 2, 6],
# [ 0, -4]])
배열과 배열의 연산
np_a = np.array([[1, 3], [0, -2]])
np_a
# array([[ 1, 3],
# [ 0, -2]])
np_b = np.array([[1, 0], [0, 1]])
np_b
# array([[1, 0],
# [0, 1]])
np_a + np_b
# array([[ 2, 3],
# [ 0, -1]])
np_a * np_b # 같은 위치의 요소끼리 단순 곱
# array([[ 1, 0],
# [ 0, -2]])
np_a @ np_b # 내적
# array([[ 1, 3],
# [ 0, -2]])
# Numpy 기능
- Numpy.Random 모듈
random.randint( ) : 임의의 정수 하나를 뽑는다
np.random.randint(11) # 0이상 11미만
np.random.randint(50, 71) # 50이상 71미만
np.random.randint(50, 71, 5) # 50이상 71미만, 5개
random.choice(list, size = n) : 주어진 list에서 n개를 뽑기
np.random.choice(['red', 'green', 'white', 'black', 'blue'], size = 3)
# array(['green', 'white', 'black'], dtype='<U5')
np.random.choice(['red', 'green', 'white', 'black', 'blue'], size = 3, replace = False) # 중복 추출 방지
# array(['white', 'blue', 'red'], dtype='<U5')
- Numpy 함수
arange( ) : 일련의 정수 배열 만들기
np.arange(1, 11) # 1이상 11미만
# array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
np.arange(1, 11, 2) # 1이상 11미만 2씩 증가
# array([1, 3, 5, 7, 9])
linspace( ) : 균등하게 나눠진 배열 만들기
np.linspace(1, 10, 4) # 1이상 10이하, 균일하게 4개
# array([ 1., 4., 7., 10.])
'머신러닝' 카테고리의 다른 글
06. 지도 학습 (분류, 회귀) - K-최근접 이웃 (KNN) : 와인 등급 예측하기 (0) | 2023.01.22 |
---|---|
05. 지도 학습 (분류) - 로지스틱 회귀 : 타이타닉 생존자 예측하기 (0) | 2023.01.21 |
04. 지도 학습 (회귀) - 선형회귀 : 보험료 예측하기 (0) | 2023.01.21 |
02. Pandas (0) | 2023.01.13 |
01. 머신러닝 시작하기 (0) | 2023.01.02 |