본문 바로가기
개인 공부

Numpy 개념 및 기본정리

by KwonSoonBin 2021. 9. 26.

Numpy 

Numerical Python, 파이썬에서 대규모 다차원 배열을 다룰 수 있게 도와주는 라이브러리.

Python List와 다르게 array는 단일 타입으로 구성

 #import numpy as np
 
arr.dtype #데이터 타입 확인

arr.astype(int) #데이터 타입 int로 변경

np.array([1,2,3,4,5]) #리스트 생성#array([1,2,3,4,5,])

np.array([0,10,2]) #범위와 간격을 설정할 수 있다 #array([0,2,4,6,8]) 마지막은 포함x

np.zero(10, dtype=int) #int타입의 0값을 가진 10개의 인덱스를 생성 #array([0,0,0,0,0,0,0,0,0,0])

np.ones((3, 5) dtype=float) #float타입의 1값을 가진 데이터를 3 x 5 형태로 생성
#array([[1., 1., 1., 1., 1.],[1., 1., 1., 1., 1.],[1., 1., 1., 1., 1.]])

np.linespace(0, 1, 5) 0 부터 1까지 5구간으로 쪼개어 리스트 생성
# array ([0. , 0.25, 0.5 , 0.75, 1. ])



x2 = np.random.randint(10, size=(3, 4))
# array([[2, 2, 9, 0],
		 [4, 2, 1, 0],
         [1, 8, 7, 3]])
         
x2.ndim  # 
2x2.shape  # (3, 4)
x2.size  # 12
x2.dtype  # dtype(‘int64’)


#array는 +, - ,* , / 에 대한 기본 연산을 지원한다
x = np.arange(4)
# array([0, 1, 2, 3])

x + 5	# array([5, 6, 7, 8])
x -5	# array([-5, -4, -3, -2])
x * 5	# array([ 0,  5, 10, 15])
x / 5	# array([0. , 0.2, 0.4, 0.6])
#난수
np.radom.random((2, 2))
#array([[0.30986539, 0.85863508],[0.89151021, 0.19304196]])

np.random.normal(0, 1, (2, 2))
#array([[ 0.44050683,  0.04912487],[-1.67023947, -0.70982067]])

np.random.randint(0, 10, (2, 2))
#array([[3, 9],[3, 2]])


concatenate : array를 이어 붙임

x = np.array([0, 1, 2])
y = np.array([3, 4, 5])
np.concatenate([x, y]) # array([0, 1, 2, 3, 4, 5])

#axis 축을 기준으로 이어붙일 수 있음, 1 = 가로 방향, 0 = 세로 방향

 

브로드캐스팅(Broadcasting) : shape 다른 array 끼리 연산

브로드캐스팅은 어떤 조건만 만족한다면 모양이 다른 배열끼리의 연산도 가능하게 해주며 모양이 부족한 부분은 확장하여 연산을 수행할 수 있도록 한다는 것이라고 생각할 수 있다. 확장 또는 전파한다는 의미

출처: https://sacko.tistory.com/16 [데이터 분석하는 문과생, 싸코]

matrix + np.array([1, 2, 3])

matrix + np.array([1,2,3])

마스킹 연산

True, False array를 통해서 특정 값들을 뽑아내는 방법

x = np.arange(5)
# array([0, 1, 2, 3, 4])

x < 3
# array([ True,  True,  True, False, False])

x > 5
# array([False, False, False, False, False])

x[x < 3]
# array([0, 1, 2])

 

 

 

출처 및 자료 참고 https://aitrack.lms.elice.io/home

 

https://aitrack.lms.elice.io/home

 

aitrack.lms.elice.io

댓글