Python

[NumPy] 배열의 연산

주댕이 2024. 1. 17. 11:14

# 기본 연산

arr1 = np.array([10, 20, 30, 40])
arr2 = np.array([1, 2, 3, 4])

# 덧셈
print(arr1 + arr2)  # [11 22 33 44]

# 뺄셈
print(arr1 - arr2)  # [ 9 18 27 36]

# 곱셈
print(arr1 * arr2)  # [ 10  40  90 160]

# 나눗셈
print(arr1 / arr2)  # [10. 10. 10. 10.]

 

  • 비교 연산
arr1 > 20  # array([False, False,  True,  True])

 

 

# 통계를 위한 연산

# 배열 생성
arr3 = np.arange(5)
arr3  # array([0, 1, 2, 3, 4])

 

  • 배열의 합
arr3.sum()  # 10

 

  • 배열의 평균
arr3.mean()  # 2.0

 

  • 배열의 표준 편차
arr3.std()  # 1.4142135623730951

 

  • 배열의 분산
arr3.var()  # 2.0

 

  • 배열의 최솟값
arr3.min()  # 0

 

  • 배열의 최댓값
arr3.max()  # 4

 

# 배열 생성
arr4 = np.arange(1, 5)
arr4  # array([ 1,  2,  6, 24])

 

  • 누적 합
arr4.cumsum()  # array([ 1,  3,  6, 10])

 

  • 누적 곱
arr4.cumprod()  # array([ 1,  2,  6, 24])

 

 

# 행렬 연산

# 행렬 생성
A = np.array([0, 1, 2, 3]).reshape(2, 2)
A
# array([[0, 1],
#        [2, 3]])
B = np.array([3, 2, 0, 1]).reshape(2, 2)
B
# array([[3, 2],
#        [0, 1]])

 

  • 행렬 곱
A.dot(B)
# array([[0, 1],
#        [6, 7]])

# np.dot(A, B)와 같다.

 

  • 전치 행렬
A.transpose()
# array([[0, 2],
#        [1, 3]])

# np.transpose(A)와 같다.

 

  • 역행렬
np.linalg.inv(A)
# array([[-1.5,  0.5],
#        [ 1. ,  0. ]])

 

  • 행렬식
np.linalg.det(A)  # -2.0
728x90