numpy 정리
https://colab.research.google.com/drive/1c_IPOmIsRW_M0TR8iBB1syYubZPOaGnk#scrollTo=y4pP-V9s6oyx
Google Colaboratory Notebook
Run, share, and edit Python notebooks
colab.research.google.com
1. numpy 불러오기
import numpy as np
2. list => numpy
arr = np.array(list)로 numpy array 생성 가능
list1 = [1,2,3,4,5]
arr = np.array(list1)
print(arr) # [1 2 3 4 5]
list2 = [[1,2,3], [4,5,6]]
arr2 = np.array(list2)
print(arr2) # [[1 2 3] [4 5 6]]
3. 배열 모양, 차원, 크기
shape : 배열의 모양
ndim : 배열의 차원
size : 배열의 크기
dtype : 배열의 타입
print(arr.shape) # (5,)
print(arr2.shape) # (2, 3)
print(arr2.ndim) # 2
print(arr.dtype) # int32
4. array 생성
0값으로 채워진 배열 생성 : np.zeros( {행, 열} )
1값으로 채워진 배열 생성 : np.ones( (행,열) )
내가 원하는 값으로 채워진 배열 생성 : np.full((행,열), 원하는 값)
print(np.zeros((2,4)))
print(np.ones((2,4)))
print(np.full((3,3),7))
5. 난수 배열 생성하기
1. 랜덤 값 생성하기 - 0~1 사이 실수 값으로 구성: np.random.rand(행갯수, 열갯수)
2. 랜덤값, 사이즈 지정 : np.random.randint(최소,최대-1,size=(행,열))
3. 타입 지정하여 배열 생성 : arr_type = np.array([1.2, 3.4, 5.6, 7.2] , dtype='int')
4. 배열의 타입 변경 : astype()
np.random.rand(2,3)
#array([[0.66154162, 0.5970674 , 0.3209585 ],
# [0.31752974, 0.85276552, 0.41839742]])
for i in range(20):
print(np.random.randint(3,10), " ", end="")
#6 8 9 8 6 9 7 5 5 7 7 8 6 8 3 6 5 9 4 8
np.random.randint(3,10,size=(2,3))
# array([[5, 7, 6],
# [7, 3, 3]])
arr_type = np.array([1.2, 3.4, 5.6, 7.2] , dtype='int')
arr_type
# array([1, 3, 5, 7])
arr_type.astype('float')
# array([1., 3., 5., 7.])
6. 배열의 인덱싱, 슬라이싱
1. arr[행][열]
2. arr[행,열]
arr = np.array([[1,2,3],[4,5,6]])
arr[0][2] # 3
arr[0,2] # 3
7. 배열 크기 재지정, 슬라이싱
reshape, reshape시 size가 서로 동일해야 오류 안남.
arr2 = np.arange(50).reshape(5,10)
"""
array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
[20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
[30, 31, 32, 33, 34, 35, 36, 37, 38, 39],
[40, 41, 42, 43, 44, 45, 46, 47, 48, 49]])
"""
2차원 배열 슬라이싱
[행의 범위, 열의 범위]
arr2[0:2][0:5] # (X)
arr2[0:2, 0:5] # (O)
arr2[[2,3],[1,2]] # 요소 각각을 가져오고 싶을 때
8. BMI 실습(파일 불러오기)
np.loadtxt('파일명.확장자')
delimiter : 구분 기호
data = np.loadtxt('height_weight.txt', delimiter=",")
data
9. Boolean 색인
데이터를 True, False 리스트로 원하는 것만 보여줄 수 있다.
score = np.array([80,70,65,43,77,54])
bool_li = [True, False, False, True, True, False]
score[bool_li]
10. 유용한 numpy 함수들
함수 | 설명 |
abs, fabs | 각 원소의 절댓값을 구함 |
sqrt | 제곱근 계산 |
square | 제곱 계산 |
Exp | 지수 e 계산 |
log, log10, log2, logp | 자연로그, 로그10, 로그2, 로그(1+x) |
sign | 각 원소 부호 계산 |
ceil | 올림 |
floor | 버림 |
rint | 반올림, dtype 유지 |
modf | 몫과 나머지를 각각 배열로 반환 |
isnan | 숫자인지 nan인지 나타내는 불리언 배열 |
cos, cosh, sin, sinh, tan, tanh | 삼각함수, 쌍곡삼각함수 |
logical_not | 각원소의 not 계산, (= -arr) |
maximum, fmax | 두 원소중 큰 값을 반환 |
minimun, fmin | 두 원소 중 작은 값 반환 |
mod | 첫번째 배열 % 두번째 배열, 나머지 계산 |