머신러닝 : 머신러닝은 컴퓨터 프로그램이 데이터로부터 학습하여 패턴을 인식하고 의사 결정을 할 수 있는 인공 지능의 한 분야입니다. 머신러닝은 데이터를 분석하고 모델을 구축하여 예측, 분류, 군집 등 다양한 작업을 수행할 수 있습니다. 이를 위해 머신러닝은 통계학, 최적화 이론, 컴퓨터 과학 등 다양한 학문을 기반으로 하며, 데이터를 통해 모델을 학습시켜 문제를 해결하는 과정을 거칩니다. 머신러닝은 현대 사회에서 많은 분야에서 활용되며, 예측 분석, 자연어 처리, 음성 인식, 이미지 인식 등 다양한 응용 분야에서 중요한 역할을 수행합니다.
Numpy : 넘파이(NumPy)는 파이썬에서 과학적 계산을 위한 핵심 라이브러리로, 다차원 배열과 행렬 연산에 특화되어 있습니다. 넘파이는 벡터 및 행렬 연산에 효율적이며, 수치 계산을 위한 다양한 함수와 도구를 제공하여 데이터 분석, 머신러닝, 과학 연구 등 다양한 분야에서 사용됩니다. C기반(기계친화적인 언어)으로 작성된 패키지이다.
머신러닝 주요 알고리즘은 선형대수학과 통계 기반의 알고리즘이고 행렬계산이 많기 때문에 대용량 데이터를 다루고 그에 따라 인퍼런스 타임도 많이 걸리게 된다.그 때 우리는 넘파이를 활용하여 데이터를 잘 전처리 해준다면 메모리 절약 및 속도향상 두마리 토끼를 잡을 수 있다
아래는 numpy로 의 예제이다.
import numpy as np
# 1차원 배열 생성
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)
# 2차원 배열 생성
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# 덧셈
addition = arr1 + arr2
print(addition)
# 곱셈
multiplication = arr1 * arr2
print(multiplication)
# 제곱근
sqrt_arr1 = np.sqrt(arr1)
print(sqrt_arr1)
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
# 2x3 행렬로 형태 변경
reshape_arr = arr.reshape(2, 3)
print(reshape_arr)
# 전치행렬 구하기
transpose_arr = arr.reshape(2, 3).T
print(transpose_arr)
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
# 인덱싱
print(arr[0]) # 첫 번째 요소 접근
print(arr[-1]) # 마지막 요소 접근
# 슬라이싱
print(arr[1:4]) # 인덱스 1부터 3까지의 요소 슬라이싱
print(arr[:3]) # 처음부터 인덱스 2까지의 요소 슬라이싱
print(arr[3:]) # 인덱스 3부터 마지막 요소까지 슬라이싱
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
# 합계
print(np.sum(arr))
# 평균
print(np.mean(arr))
# 최댓값
print(np.max(arr))
# 최솟값
print(np.min(arr))
Reshape : 내가 배우면서 중요하다고 생각한 넘파이 명령어
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
reshaped_arr = arr.reshape(2, 3)
print(reshaped_arr)
# 출력 결과:
# [[1 2 3]
# [4 5 6]]
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
reshaped_arr = arr.reshape(6)
print(reshaped_arr)
# 출력 결과:
# [1 2 3 4 5 6]
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
reshaped_arr = arr.reshape(6)
print(reshaped_arr)
# 출력 결과:
# [1 2 3 4 5 6]
import numpy as np
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
reshaped_arr = arr.reshape(-1)
print(reshaped_arr)
# 출력 결과:
# [1 2 3 4 5 6 7 8]
import numpy as np
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
reshaped_arr = arr.reshape(2, 3, 2)
print(reshaped_arr)
# 출력 결과:
# [[[ 1 2]
# [ 3 4]
# [ 5 6]]
#
# [[ 7 8]
# [ 9 10]
# [11 12]]]
판다스(Pandas)는 파이썬에서 데이터 조작과 분석을 위한 라이브러리입니다. 주로 표 형태의 데이터를 다루는데 특화되어 있으며, 데이터 프레임(DataFrame)이라는 자료구조를 제공합니다. 판다스를 사용하면 데이터의 필터링, 정렬, 그룹화, 결측치 처리 등 다양한 작업을 편리하게 수행할 수 있습니다.
파이썬 역량 : 딕셔너리, 슬라이싱, 리스트의 이해 등이 있다.
데이터 프레임 생성
import pandas as pd
data = {'이름': ['홍길동', '김철수', '이영희'],
'나이': [25, 30, 28],
'성별': ['남', '남', '여']}
df = pd.DataFrame(data)
print(df)
# 출력 결과:
# 이름 나이 성별
# 0 홍길동 25 남
# 1 김철수 30 남
# 2 이영희 28 여
데이터 프레임 정보 확인
import pandas as pd
data = {'이름': ['홍길동', '김철수', '이영희'],
'나이': [25, 30, 28],
'성별': ['남', '남', '여']}
df = pd.DataFrame(data)
print(df.info())
# 출력 결과:
# <class 'pandas.core.frame.DataFrame'>
# RangeIndex: 3 entries, 0 to 2
# Data columns (total 3 columns):
# # Column Non-Null Count Dtype
# --- ------ -------------- -----
# 0 이름 3 non-null object
# 1 나이 3 non-null int64
# 2 성별 3 non-null object
# dtypes: int64(1), object(2)
# memory usage: 200.0+ bytes
# None
데이터 프레임 필터링
import pandas as pd
data = {'이름': ['홍길동', '김철수', '이영희'],
'나이': [25, 30, 28],
'성별': ['남', '남', '여']}
df = pd.DataFrame(data)
filtered_df = df[df['나이'] > 25]
print(filtered_df)
# 출력 결과:
# 이름 나이 성별
# 1 김철수 30 남
# 2 이영희 28 여
작업 실행할때 알아두면 좋은 파라미터
axis = 1 열단위 작업
axis = 0 행단위 작업
inplace = True 원본데이터프레임 바로저장