본문 바로가기

DB엔지니어가 공부하는 python

[python] 기본이 되는 numpy

numpy 는 python을 다루고, 배우는 이들에게 어쩌면 가장 기본이 되는 모듈이다.

 

numpy는 벡터 및 행렬 연산을 구현하도록 해주며

데이터분석을 할때 꼭 필요한 pandas 와 matplotlib의 기본이 되기도 한다.

 

자세한 사용법이야 워낙 인터넷에 많으니,

 

기본적으로 numpy를 잘 쓸수 있게 해주는 사용법을 몇개 정리 한다.

 

array - 말 그대로 행렬이다. numpy는 데이터를 array로 묶어 연산을 수행한다.

 

import numpy as np

data1 = [1,2,3,]

data1 

out : [1,2,3]



arr1 = np.array(data1)

arr1

out: array([1,2,3])



arr1.shape

out:(3, )



arr1.dtype

out:dtype('int64')

 

이런식으로 표현될수 있겠다..

 

다른 몇가지 기본 기능을 살펴보면..

np.zeros(10)
#out:array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
#10자리의 모두 0으로 구성된 1차원 행렬을 생성한다.

np.zeros((3,5))
#out:array([[0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.]])
#3*5 행렬 모양으로 모두 0으로 구성된 행렬을 생성한다.


np.ones(9)
np.ones((2,10))
#zeros와 마찬가지이나, 0 대신 1로 결과가 나온다.

이렇게 행렬을 나타 낼 수 있다.

 

이것을 응용해서 행렬간의 덧셈, 뺄셈, 나눗셈, 곱셈도 할 수 있다.

 

(직접 주피터 노트북에서 실행 해보자!)

arr1 = np.array([[1,2,3],[4,5,6]])
arr1

arr1.shape

arr2 = np.array([[10,11,12],[13,14,15]])
arr2

arr2.shape

# array 덧셈
arr1 + arr2

# array 뺄셈
arr1 - arr2

# array 곱셈
arr1 * arr2

# array 나눗셈
arr1 / arr2

위와 같이 행렬의 크기가 서로 같을때 계산을 할 수 있지만, 다를때로 할 수 있다.

 

이를 array의 브로드 캐스트 라 한다.

 

(아래 코드도 직접 실행 해 보자!)

 

arr1 = np.array([[1,2,3],[4,5,6]])
arr1

arr1.shape

arr3 = np.array([10,11,12])
arr3

arr3.shape

arr1 + arr3

arr1 * arr3

위와 같이 서로 크기가 다른 행렬의 arr1과 arr3의 연산이 가능하다.

 

연산결과를 살펴보면 arr3이 [10,11,12] 에서 [[10,11,12],[10,11,12]]로 확장되어 계산되었음을 확인할 수 있다.

 

 

 

일단, 뭐든 부딧혀서 알아내는것이 중요하다.

아직 블로그엔 작성하지 않고 있지만 

"캐글 타이타닉" 을 따라해보고 있다.

 

궁금한 도전자는 구글 검색을 통해서 알 수 있으니, 한번 따라 해보길 바란다.

"캐글 타이타닉"을 따라하면서 같이 데이터 분석을 공부해 보자!!