Programming/Python
파이썬 머신러닝/딥러닝 : numpy - 연산
byebyeblue
2019. 5. 22. 17:13
Numpy 연산
▶ Numpy 1차원 연산
연산자를 이용할 경우에는 +, -, *, / 기호를 동일하게 사용한다.
함수를 사용할 경우에는 덧셈 add(), 뺄셈 subtract(), 곱셈 multiply(), 나눗셈 divide()을 사용한다.
1 2 3 | import numpy as np a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) |
1. 덧셈
배열 a와 배열 b가 있을 때, a+b는 a[0]+b[0], a[1]+b[1], ... 와 같은 방식으로 결과를 return 한다.
1 2 3 4 5 6 7 8 | c = a+b #함수를 이용할 경우 #c = np.add(a, b) print(c) #Result [5 7 9] |
2. 뺄셈
배열 a와 배열 b가 있을 때, a-b는 a[0]-b[0], a[1]-b[1], ... 와 같은 방식으로 결과를 return 한다.
1 2 3 4 5 6 7 8 | c = a-b #함수를 이용할 경우 #c = np.subtract(a, b) print(c) #Result [-3 -3 -3] |
3. 곱셈
배열 a와 배열 b가 있을 때, a-b는 a[0]*b[0], a[1]*b[1], ... 와 같은 방식으로 결과를 return 한다.
1 2 3 4 5 6 7 8 | c = a*b #함수를 이용할 경우 #c = np.multiply(a, b) print(c) #Result [4 10 18] |
4. 나눗셈
배열 a와 배열 b가 있을 때, a-b는 a[0]/b[0], a[1]/b[1], ... 와 같은 방식으로 결과를 return 한다.
1 2 3 4 5 6 7 8 | c = a/b #함수를 이용할 경우 #c = np.divide(a, b) print(c) #Result [0.25 0.4 0.5] |
▶ Numpy 2차원 배열 연산 : Matrix
Khan Academy [Multiplying matrices]
위의 그림과 같이 일반적인 행렬의 곱연산을 할 때는 dot() 함수를 이용한다.
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 | import numpy as np list1 = [ [1, 2], [3, 4] ] list2 = [ [5, 6], [7, 8] ] a = np.array(list1) b = np.array(list2) # numpy에서 vector와 matrix의 product(값)를 구하기 위해서 dot() 함수를 이용한다 print("두 matrix에 대한 product") product = np.dot(a, b) print(product) #Result 두 matrix에 대한 product [[19 22] [43 50]] |
▶ Numpy 2차원 배열 연산
numpy에서는 배열간의 연산을 위한 여러 함수들을 제공하고 있다.
sum(), product() : 이 함수들은 axis 옵션을 사용한다. axis 0이면 컬럼끼리, 1이면 행끼리 계산한다.
1 | c = np.array([[1, 2], [3, 4]]) |
1. 배열의 각 요소를 더하는 함수 sum()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | s = np.sum(c) print(s) #Result 10 #c의 모든 요소의 값을 합한 값(1+2+3+4) s = np.sum(a, axis = 0) print(s) #Result [4 6] #컬럼끼리 더한 값 출력(1+3, 2+4) s = np.sum(a, axis = 1) print(s) #Result [3 7] #같은 행끼리 더한 값(1+2, 3+4) |
2. 배열의 요소들을 곱하는 함수 product()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | p = np.prod(a) print(p) #Result 24 #c의 모든 요소의 값을 곱한 값(1*2*3*4) p = np.prod(a, axis = 0) print(p) #Result [3 8] #컬럼끼리 곱한 값 출력(1*3, 2*4) p = np.prod(a, axis = 1) print(p) #Result [2 12] #같은 행끼리 곱한 값 출력(1*2, 3*4) |