파이썬 수치해석: 2. Numpy, zeros, ones, eye, 연산자

메카 2017-12-15 (금) 19:22 6년전 23109  

numpy는 과학 계산을 위한 라이브러리로서 다차원 배열을 처리하는데 필요한 여러 유용한 기능을 제공하고 있다. 공학 프로그램의 대표주자인 매틀랩(MATLAB)과 상당히 유사한 파이썬+numpy를 활용하면 행렬 계산을 하는데 유용하게 사용할 수 있다.

먼저, 파이썬 Spyder에서 numpy 패키지를 불러온다. 대부분의 프로그램들은 numpy를 np로 줄여서 사용하는듯하니, 똑같이 np로 사용하도록 하겠다.

1. 행렬의 연산

import numpy as np

 

A = [[1,2],[3,4]]
B = [[2,2],[2,2]]
C = [[1],[2]]
D = [[1,2]]
E = [[1,0],[0,1]]

 

위와 같은 경우, A, B, E는 2x2 사이즈의 리스트, C는 2x1 사이즈의 리스트, 그리고 D는 1x2 사이즈의 리스트가 된다. 리스트형에는 사이즈를 알기 위한 shape 및 형태를 알기 위한 dtype가 적용되지 않기 때문에 numpy 패키지의 array라는 함수를 사용해서 행렬로 바꿔줄 수 있다.

첫번째 줄에서 numpy라는 패키지를 np로 불러온다고 했기 때문에 F1 = numpy.array(A)나 F1 = np.array(A)는 동일한 기능을 갖는다.

 

F1 = np.array(A)
F2 = np.array(B)

 

print (F1+F2)

F1과 F2는 각각 2x2 행렬이다.

행렬의 연산에서 print (F1+F2)를 실행하게 되면 결과는 어떻게 될까?

A

B

 

 

print (F1*F2)
print (F1@F2)

 

다음은 F1*F2와 F1@F2이다. 행렬을 곱하는 것은 두가지 방법이 있으며, F1*F2의 방식은 각각의 원소끼리 곱하는 dot product라고 한다.

C

D

python1

위와 같이 프로그래밍을 한 후에 F5를 눌러서 실행하면 다음과 같이 F1+F2, F1*F2, F1@F2의 값이 출력된다.

A1

2. zeros, ones, eye 함수

파이썬과 함께 사용하는 numpy 패키지는 마치 MATLAB을 사용하는 듯한 느낌을 준다. 그 이유 중 하나는 아마 MATLAB에서 익숙한 zeros, ones, eye 함수 때문이 아닌가 한다. 모든 원소를 0으로 채우는 zeros, 1로 채우는 ones, 그리고 단위 행렬을 만들어주는 eye를 사용해보도록 하자.

import numpy as np

 

A = np.zeros((2,2))
B = np.ones((2,2))
C = np.eye(2)

 

 

print (A)
print (B)
print (C)

 

A2

F5를 눌러서 실행하게 되면, 0으로 채워진 행렬, 1로 채워진 행렬, 그리고 단위 행렬이 만들어진다.

A3

3. 파이썬 연산자

_수식

파이썬 연산자 중에 특이한 점은 거듭제곱 연산자가 아닐까 싶다. 대부분 3의 3승을 구하기 위해서 3^3으로 생각하지만, 3의 3승은 3**3으로 표현하게 된다.

 

출처: https://mechasolution.net/2017/12/12/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%88%98%EC%B9%98%ED%95%B4%EC%84%9D-2-numpy-zeros-ones-eye-%EC%97%B0%EC%82%B0%EC%9E%90/

메카리워즈 Image Map


모바일 버전으로 보기