Coding/Basic

[Python Library] NumPy 함수 정리/NumPy function cleanup

Numpy  라이브러리를 사용하는 가장 큰 이유는 Array의 사용입니다. 

Python의 Array 와 비교되는 Numpy의 차이점은 바로 차원의 다양성이라고 말할 수 있습니다. Python Array는 현재 일차원 만을 지원하는 것에 비해, Numpy는 일차원 외에도 2차원을 지원하여 딥러닝이나 머신러닝을 사용할 때, 행렬을 이용한 계산이 필요한 시점에서 항상 쓰이게 됩니다.

*이 글은 Kaggle:NumpyTutorialForBeginner를 참조하였고 그 외에도 제 나름대로 공부한 내용(Deep Learning Specialization by Andrew Ng, 데이터 과학을 위한 통계, An introduction to Statistical Learning 등등)을 덧붙여 만들어졌습니다.

 


그럼 시작해보겠습니다!

Numpy를 부르는 것부터 시작해보겠습니다. import해야 이제서야 numpy 라이브러리를 사용할 수 있게 됩니다!! 꼭 써주세요.

import numpy as np 		//입력시 특정한 결과값이 나오지는 않습니다.

 

이후에 생성과 계산을 해보겠습니다!

  • np.array() 생성하기
  • np.ndim(), np.shape(), np.size(), np.dtype()
//numpy array 생성
Array1 = np.array([1,2,3,4])			//Array1은 1차원으로
Array2 = np.array([(1,2,3),(4,5,6)])		//Array2는 2차원으로 만들어보았습니다.(괄호 주의!)
print("Array1 : ", Array1) 			//Array1 값이 출력됩니다. output | Array1 : [1 2 3 4]
print("Array2 : ", Array2)			//Array2 값이 출력됩니다. output | Array2 : [[1 2 3] [4 5 6]]

//생성된 numpy array의 특징 뽑아내기

//먼저 Array1
print("Array1")					//output | Array1
print("Dimension : ", Array1.ndim)		//dimension(몇 차원) 출력 output | Dimension : 1
print("shape : ", Array1.shape)			//행렬 크기(행과 열 정보) 출력 output | shape : (1,4)
print("size : ", Array1.size)			//행렬의 모든 숫자 개수 출력 output | size : 4
print("dtype : ", Array1.dtype)			//행렬의 숫자 타입 출력 output | dtype : in64

//Array2
print("Array2")					//output | Array2
print("Dimension : ", Array2.ndim)		//dimension(몇 차원) 출력 output | Dimension : 2
print("shape : ", Array2.shape)			//행렬 크기(행과 열 정보) 출력 output | shape : (2, 3)
print("size : ", Array2.size)			//행렬의 모든 숫자 개수 출력 output | size : 6
print("dtype : ", Array2.dtype)			//행렬의 숫자 타입 출력 output | dtype : in64

 

특정한 numpy array 추출해보기 

:np.zeros, np.ones, np.arange, np.random.random

    • np.zeros : useful when first declaring matrix
    • np.ones : when you want to use unit matrix
    • np.arange : when you want to make a matrix that has regularity
    • np.random.random
//np.zeros : 모두 0으로 초기화된 행렬 만들기 : 행렬 초기 선언시 유리
A = np.zeros((3,4))			//괄호안에 shape형태로 만들고 싶은 행렬의 shape 삽입, 괄호 주의!!
print("A : ", A)			//output | A : [[0. 0. 0. 0.][0. 0. 0. 0.][0. 0. 0. 0.]]

//np.ones : 모두 1로 초기화된 행렬 만들기 : 단위 행렬 작성시 유리
B = np.ones((2,3))			//괄호안에 shape형태로 만들고 싶은 행렬의 shape 삽입
print("B : ", B)			//output | B : [[1. 1. 1.][1. 1. 1.]]

//np.arange : arrange처럼 간격있는 일차원 배열 작성 가능 : 숫자 간격있는 행렬 작성시 유리, 철자 주의!!
C = np.arange(1,8,2)			//1과 8사이에 2간격으로 행렬 작성
print("C : ", C)			//output | C : [1 3 5 7]

//np.random.random : 범위 내의 랜덤한 숫자 출력 : 임의의 값을 생성하고 싶을 때 유리
D = np.random.random((2,3))
print("D : ", D)			
				//output | D : [[0.85511635 0.92153486 0.58797302]
 						[0.60292604 0.63743353 0.55012405]]

 

행렬 변형하기

: np.reshape(), np.vstack(), np.hstack, np.hsplit(), np.vsplit

before = np.array([1,2,3,4,5,6,7,8,9,10])	//before : 1행 10열
print(before)					//output | [1 2 3 4 5 6 7 8 9 10]

//reshape : 행렬의 차원을 변형하기
reshape = before.reshape((5,2))			//reshape : 1행 10열을 5행과 2열을 지닌 행렬로 변형
print(reshape)					//output | [[1 2],[3 4], [5, 6], [7, 8], [9,10]]
                                                        
//

Random Number 추출 비교하기

: np.random.random(), np.random.rand(), np.random.randint(), np.random.permutation

 

Numpy의 행렬 관련 계산 함수

: np.dot(), np.linalg.norm(), np.multiply()

 

긴 글 읽어주셔서 감사합니다!

유익하셨다면 밑 버튼을 눌러서 후원해주세요!:)

Buy me a MilkshakeBuy me a Milkshake