⚙️ NumPy
📌 NumPy 개요
- NumPy란? : 고성능 과학계산 컴퓨팅과 데이터 분석에 필요한 기본적인 패키지
- NumPy의 특징
- 리스트에 비해 빠름
- 반복문 없이 전체 데이터에 일괄적인 연산 적용이 가능하며, 표준 수학 함수를 제공
- 상당히 유연하게 사용이 가능
- 데이터 분석에서 NumPy의 중요성
- 벡터 상에서 계산이 가능하며, 이를 변형/가공하는 것이 용이함
- 정렬, 유일한 값, 집합연산 등 일반적인 배열 처리 알고리즘을 쉽게 사용가능
- 기본적인 수학 및 통계기능을 활용하여 데이터 요약 및 확인이 가능
- array 자료형의 특징
- 모든 원소에 일괄 적용되는 벡터 연산이 가능함
- 모든 원소의 구성이 깔끔(오와 열이 맞아야 수학적으로 동작)
- Tensorflow / PyTorch의 DeepLearning에서 ndim, shape, dtype 체크가 중요함
- 리스트와 비슷함
📌 NumPy의 주요 메서드
import numpy as np
a = [100,200,300,400, 500]
a_arr = np.array(a)
arr = np.array([1,2,3,4,5])
arr.dtype
arr.ndim
- arr.shape : 배열의 차원별 원소 개수 확인
arr.shape
- 인덱싱 : 배열의 인덱스에 원하는 인덱스만 뽑아 바로 접근이 가능
a = [10,20,30,40,50]
arr = np.array(a)
arr[[0,1,3]]
a = [1,2,3]
arr = np.array(a, dtype = np.string_)
arr = arr.astype(np.float64)
- np.ones(), np.zeros() : 1, 0으로 초기화된 배열 생성
np.ones(3)
np.zeros(1)
- Boolean Indexing : 인덱싱에 조건식을 활용하여 값을 필터링 하는 방법
test_arr = np.arange(10)
test_arr[test_arr < 5]
⚙️ Pandas
📌 Pandas 개요
- Pandas란? : 사용하는 자료의 차원에 따라서 자료형을 구분해서 정의
- Pandas의 차원에 따른 자료형 구분
- 1차원 : Series Type
- 2차원 : DataFrame Type
- 3차원 : panel Type
- 고차원 : Tensor -> Tensorflow / PyTorch
📌 Series 자료형
- pd.Series() : 1차원 Series 데이터 생성
import pandas as pd
a = [10000, 10300, 9900, 10500, 11000]
a_Series = pd.Series(a)
# 데이터에 인덱스 커스텀하기
a_Series_index = pd.Series(
data = [10000, 10300, 9900, 10500, 11000],
index = ["2023-12-01", "2023-12-02","2023-12-03",
"2023-12-04", "2023-12-5"]
)
- Series.index : Series의 인덱스 확인
a_Series_index.index
- Series.values : Series의 값 확인
a_Series_index.values
"2023-12-05" in a_Series_index
⚙️ NumPy 실습
📝 배열 생성하기
import numpy as np
# [:, np.newaxis]를 이용해 행과 열을 뒤집어줌
a = np.arange(0,51,10)[:, np.newaxis] + np.arange(0,6,1)
📝 배열 정보 확인하기
print(a.dtype) # int64
print(a.ndim) # 2
print(a.shape) # (6, 6)
📝 배열 인덱싱하기
# 리스트 방식
a[1][2] # 12
# 배열 방식
a[1,2] # 12
📝 배열 슬라이싱하기
# 리스트 방식
a[0][3:5] # array([3,4])
# 배열 방식
a[0, 3:5] # array([3,4])
a[:, 2]
a[2::2, ::2]
a[4:, 4:]
⚙️ Pandas 실습
📝 Series 생성하기
import pandas as pd
stock_price_list = [10000, 10300, 9900, 10500, 11000]
stock_price_Series = pd.Series(stock_price_list)
📝 Index를 수정한 Series 생성하기
stock_price_Series_index = pd.Series(
data = [10000, 10300, 9900, 10500, 11000],
index = [ "2023-12-01", "2023-12-02","2023-12-03",
"2023-12-04", "2023-12-5"]
)
stock_price_Series_index
📝 Series 인덱싱하기
print(stock_price_Series[0])
stock_price_Series_index[[0,3]]
stock_price_Series_index[["2023-12-02", "2023-12-5"]]
📝 Series 슬라이싱하기
print(stock_price_Series[0:4])
stock_price_Series_index[1:4]
stock_price_Series_index["2023-12-01":"2023-12-04"]
📝 Dictionary를 Series로 변환하기
s_data = {"APPL":1000, "MS":2000, "TSLA":1500}
s_data_Series = pd.Series(s_data)