در این مثال، نحوه استفاده از NumPy برای تجزیه و تحلیل مجموعه داده های فروش را بررسی می کنیم.
فرض کنید مجموعه داده های ما شامل ستون هایی برای نام محصول
، قیمت واحد
، تعداد واحدهای فروخته شده
و تاریخ فروش
است.
هدف:
- محاسبه درآمد کل برای هر محصول
- شناسایی پرفروش ترین محصول از نظر تعداد واحدهای فروخته شده
- محاسبه میانگین قیمت در هر ماه
مراحل:
۱. بارگیری و پیش پردازش داده ها:
- از کتابخانه
csv
برای خواندن داده ها از یک فایل CSV استفاده کنید. - داده ها را به یک آرایه NumPy با ستون های مربوطه تبدیل کنید.
- مقادیر گمشده یا نامعتبر را بررسی و handle کنید.
Python
import numpy as np
import csv
# بارگیری داده ها از فایل CSV
data = []
with open('sales_data.csv', 'r') as csvfile:
reader = csv.reader(csvfile)
next(reader) # Skip header row
for row in reader:
data.append(row)
# تبدیل داده ها به آرایه NumPy
data_array = np.array(data)
# تبدیل ستون ها به نوع داده مناسب
product_names = data_array[:, ۰]
unit_prices = data_array[:, ۱].astype(np.float64)
unit_sold = data_array[:, ۲].astype(np.int32)
sale_dates = data_array[:, ۳]
۲. محاسبه درآمد کل برای هر محصول:
- از عملگر ضرب برای محاسبه درآمد کل (قیمت واحد * تعداد واحدهای فروخته شده) برای هر محصول استفاده کنید.
- از
np.unique()
برای دریافت لیست محصولات منحصر به فرد استفاده کنید. - از
np.sum()
برای جمع کردن درآمد هر محصول استفاده کنید.
Python
# محاسبه درآمد کل برای هر محصول
total_revenue = unit_prices * unit_sold
# دریافت لیست محصولات منحصر به فرد
unique_products = np.unique(product_names)
# جمع آوری درآمد کل برای هر محصول
product_revenue = np.zeros_like(unique_products)
for product in unique_products:
product_mask = product_names == product
product_revenue[np.where(unique_products == product)] = np.sum(total_revenue[product_mask])
# مرتب سازی محصولات بر اساس درآمد کل به صورت نزولی
sorted_revenue = np.sort(product_revenue)[::-۱]
sorted_products = unique_products[np.argsort(product_revenue)[::-۱]]
# نمایش ۵ محصول پرفروش
print("۵ محصول پرفروش:")
for i in range(۵):
print(f"{sorted_products[i]}: ${sorted_revenue[i]:,.۲f}")
۳. شناسایی پرفروش ترین محصول:
- از
np.argmax()
برای یافتن شاخص محصول با بالاترین درآمد کل استفاده کنید.
Python
# یافتن شاخص محصول با بالاترین درآمد کل
top_product_idx = np.argmax(product_revenue)
# نمایش پرفروش ترین محصول
print("\nپرفروش ترین محصول:")
print(f"{sorted_products[top_product_idx]}: ${sorted_revenue[top_product_idx]:,.۲f}")
۴. محاسبه میانگین قیمت در هر ماه:
- از
np.extract()
برای استخراج داده های مربوط به هر ماه استفاده کنید. - از
np.mean()
برای محاسبه میانگین قیمت در هر ماه استفاده کنید.
Python
# استخراج داده ها برای هر ماه
months = np.unique(sale_dates[:, ۲])
# محاسبه میانگین قیمت در هر ماه
monthly_avg_price = np.zeros_like(months)
for month in months:
month_mask = sale_dates[:, ۲] == month
monthly_avg_price[np.where(months == month)] = np.mean(unit_prices[month_mask])
# نمایش میانگین قیمت در هر ماه
print("\nمیانگین قیمت در هر ماه:")
for i in range(len(months)):
print(f"{months[i]}: ${monthly_avg_price[i]:,.۲f}")