코드
a = np.array([20, 30, 40, 50]) print("배열 a : %s" %a) b = np.arange(4) print("배열 b : %s" %b) print("배열 a - b : %s" %(a-b)) print("배열의 각 요소 제곱 값 구하기 : %s" %b**2) print("비교 연산으로 참 거짓 값 구하기 : %s" %(a<30))
결과
배열 a : [20 30 40 50] 배열 b : [0 1 2 3] 배열 a - b : [20 29 38 47] 배열의 각 요소 제곱 값 구하기 : [0 1 4 9] 비교 연산으로 참 거짓 값 구하기 : [ True False False False]
각 요소에 대한 곱 연산은 * 을 이용하지만, 행렬 곱은 dot 함수를 이용한다.
코드
array1 = np.array([[1, 1], [0, 1]]) array2 = np.array([[2, 3], [1, 5]]) print("배열 array1 : ") print(array1) print("배열 array2 : ") print(array2) print("배열의 각 요소들의 단순 곱 : ") print(array1*array2) print("행렬 곱 구하기 : ") print(array1.dot(array2)) print(np.dot(array1, array2))
결과
배열 array1 : [[1 1] [0 1]] 배열 array2 : [[2 3] [1 5]] 배열의 각 요소들의 단순 곱 : [[2 3] [0 5]] 행렬 곱 구하기 : [[3 8] [1 5]] [[3 8] [1 5]]
일부 연산, +=, *= 등은 새로운 배열을 생성하지 않고 이미 존재하고 있는 배열을 수정한다.
코드
A = np.ones((2,3), dtype=int) B = np.random.random((2,3)) print(" 배열 A : ") print(A) print(" 배열 B : ") print(B) print(" 배열 A의 각 요소에 3 곱하기(결과가 A에 저장된다) -> 현재 배열 A : ") A *= 3 print(A) print(" 배열 B의 각 요소에 배열 A의 각 요소의 값을 더한다.(결과가 B에 저장된다) -> 현재 배열 B : ") B += A print(B)
결과
배열 A : [[1 1 1] [1 1 1]] 배열 B : [[ 0.96996427 0.86763816 0.32974234] [ 0.68707904 0.2039358 0.88133135]] 배열 A의 각 요소에 3 곱하기(결과가 A에 저장된다) -> 현재 배열 A : [[3 3 3] [3 3 3]] 배열 B의 각 요소에 배열 A의 각 요소의 값을 더한다.(결과가 B에 저장된다) -> 현재 배열 B : [[ 3.96996427 3.86763816 3.32974234] [ 3.68707904 3.2039358 3.88133135]]
배열의 모든 요소의 합 계산과 같은 많은 단항 연산 또한 간단히 계산된다.
코드
a = np.arange(12).reshape(4,3) print("배열 a : ") print(a) print("배열의 각 요소의 합 : ") print(a.sum()) print("배열의 요소중 가장 작은 값을 가지는 요소 : ") print(a.min()) print("배열의 요소중 가장 큰 값을 가지는 요소 : ") print(a.max())
결과
배열 a : [[ 0 1 2] [ 3 4 5] [ 6 7 8] [ 9 10 11]] 배열의 각 요소의 합 : 66 배열의 요소중 가장 작은 값을 가지는 요소 : 0 배열의 요소중 가장 큰 값을 가지는 요소 : 11
기본적으로, 위의 연산들은 배열의 모양에 관계없이 단순히 숫자로 이루어진 리스트로써 생각될 수 있다. 그러나 axis 파라미터를 적용함으로써 다차원 배열의 특정한 축을 기준으로 계산하는 것 또한 가능하다.
코드
a = np.arange(12).reshape(4,3) print("배열 a : ") print(a) print("배열의 각 column의 합을 구하기") print(a.sum(axis=0)) print("배열의 각 row의 합을 구하기") print(a.sum(axis=1)) print("배열의 각 row의 누적합을 구하기") print(a.cumsum(axis=1))
결과
배열 a : [[ 0 1 2] [ 3 4 5] [ 6 7 8] [ 9 10 11]] 배열의 각 column의 합을 구하기 [18 22 26] 배열의 각 row의 합을 구하기 [ 3 12 21 30] 배열의 각 row의 누적합을 구하기 [[ 0 1 3] [ 3 7 12] [ 6 13 21] [ 9 19 30]]
No comments:
Post a Comment