넘파이(numpy)
넘파이는 컴퓨터가 계산하기 좋은 형태를 제공합니다. 그래서 판다스에 비해 메모리도 덜 들고 계산도 더 빠릅니다.
- npy, npz와 같은 확장자 혹은 텍스트 파일로 입출력
- 넘파이 배열과 판다스 형식은 상호 변환 가능
- 넘파이는 인덱스나 칼럼명이 없음
import numpy as np
배열 생성
kitsch = np.array([['우', '리', '만', '의'],
['자', '유', '로', '운'],
['n', 'i', 'n', 'e'],
['t', 'e', 'e', 'n']])
# 판다스로 변환시 칼럼과 인덱스 지정 가능
# pd.DataFrame(kitsch, columns=['num1', 'num2', 'num3', 'num4'], index=['cat', 'dog', 'bear'])
# 넘파이로 변환
# np.array('판다스 형식')
배열 인덱싱과 연산
# [행, 열] 순으로 작성합니다.
kitsch[2:3, :]
# array([['n', 'i', 'n', 'e'],
# ['t', 'e', 'e', 'n']])
array_one = np.array([[1, 2], [3, 4]])
array_nine = np.array([[9, 8], [7, 6]])
# 사칙연산 가능
# array_one + 1
array_one * array_nine
# array([[ 9, 16],
# [21, 24]])
array_one @ array_nine
# array([[ 9+14, 8+12],
# [27+28, 24+24]]) # 이해하기 쉽게 풀어씀
random 함수
np.random.randint(1, 10, n)
# 1~10까지 수를 n개 선택
np.random.choice(['cat', 'bird', 'dog', 'bear', 'zelda'], size=3, replace=False)
# 리스트 중 3개를 뽑음
# 리스트 순서로 정렬 X
# 뽑는 순서대로 나옴
기타
np.arange(1, 100, 8) # 파이썬 range와 동일
# array([1, 8, 16, ... ])
# range의 끝이 포함되는 버전
np.linspace(1, 100, 8)
# array([1., 8., 15., 22., ...])
'머신러닝' 카테고리의 다른 글
extra [머신러닝] 판다스 (0) | 2023.05.18 |
---|---|
01 [머신러닝] 머신러닝이란? (2) | 2023.05.16 |