넘파이를 활용한 실제 사례 예시

Plcb Archive·2024년 2월 5일
0

파이썬

목록 보기
15/22
post-custom-banner

앞서 게시한 글에서 얘기했듯이 넘파이(Numpy)는 파이썬에서 수학적 계산을 위해 널리 사용되는 라이브러리다. 사업성 분석에 넘파이를 사용하면, 대량의 데이터 처리와 복잡한 수치 계산을 효율적으로 수행할 수 있다. 이번 포스트에서는 넘파이를 사용하여 간단한 사업성 분석을 해보겠다.

사례: 제품 판매 분석

예를 들어, 여러 제품의 월별 판매량과 수익을 분석하여 어떤 제품이 가장 이익이 많은지, 어떤 달에 판매가 가장 좋은지 파악할 수 있다.

데이터 준비

import numpy as np

# 각 행은 제품, 각 열은 월별 판매량을 나타낸다.
sales_data = np.array([
    [120, 135, 150, 145],
    [100, 110, 140, 130],
    [90, 100, 95, 105]
])

# 각 제품의 단위당 이익
profit_per_unit = np.array([20, 30, 25])

총 판매량 계산

total_sales = np.sum(sales_data, axis=1)
print(f"총 판매량: {total_sales}")

각 제품별 총 이익 계산

total_profit = np.dot(profit_per_unit, sales_data)
print(f"총 이익: {total_profit}")

np.dot

np.dot 함수는 NumPy 라이브러리에서 두 배열의 점계(dot product)를 계산하는 데 사용된다. 이 함수는 벡터의 내적, 행렬 곱셈, 고차원 배열의 점계를 계산할 때 유용하다. 함수의 사용 방법은 입력 배열의 차원에 따라 다양하다.

  • 두 벡터의 경우, np.dot은 두 벡터의 내적을 반환한다.
  • 두 행렬의 경우, np.dot은 두 행렬의 곱을 반환한다.
  • 고차원 배열의 경우, np.dot은 마지막 차원의 합에 대한 점계를 계산한다.

예시:

import numpy as np

# 벡터의 내적
v1 = np.array([1, 2, 3])
v2 = np.array([4, 5, 6])
dot_product = np.dot(v1, v2)
print("벡터의 내적:", dot_product)

# 행렬 곱셈
A = np.array([[1, 2], [3, 4]])
B = np.array([[2, 0], [1, 3]])
matrix_product = np.dot(A, B)
print("행렬 곱셈:\n", matrix_product)

가장 높은 판매량을 기록한 월 찾기

highest_sales_month = np.argmax(np.sum(sales_data, axis=0)) + 1
print(f"가장 높은 판매량을 기록한 월: {highest_sales_month}월")

np.argmax

np.argmax 함수는 주어진 배열에서 최대값의 인덱스를 반환한다. 이 함수는 배열 전체 또는 지정된 축을 따라 최대값을 찾는데 사용할 수 있다.

  • 단일 차원 배열에서는 최대값의 인덱스를 반환한다.
  • 다차원 배열에서는 axis 매개변수를 통해 특정 축을 따라 최대값의 인덱스를 찾을 수 있다.

예시:

import numpy as np

# 단일 차원 배열에서 최대값의 인덱스 찾기
arr = np.array([1, 3, 2, 7, 4])
index_of_max = np.argmax(arr)
print("최대값의 인덱스:", index_of_max)

# 다차원 배열에서 특정 축을 따라 최대값의 인덱스 찾기
arr_2d = np.array([[1, 2, 3], [4, 6, 5], [7, 8, 9]])
index_of_max_in_rows = np.argmax(arr_2d, axis=1)  # 각 행에서 최대값의 인덱스
index_of_max_in_cols = np.argmax(arr_2d, axis=0)  # 각 열에서 최대값의 인덱스
print("행별 최대값의 인덱스:", index_of_max_in_rows)
print("열별 최대값의 인덱스:", index_of_max_in_cols)

가장 이익이 높은 제품 찾기

highest_profit_product = np.argmax(total_profit) + 1
print(f"가장 이익이 높은 제품: 제품 {highest_profit_product}")

이와 같은 방식으로 넘파이를 사용하면, 대규모 데이터에 대한 복잡한 계산도 간단하고 빠르게 처리할 수 있다. 사업 결정을 내리기 위한 데이터 기반 분석에 넘파이는 매우 유용한 도구이다.

post-custom-banner

0개의 댓글