1. 校园奶茶店销量分析的业务背景
在大学校园里经营一家奶茶店,每天都会产生大量的销售数据。这些数据看似简单,但如果能合理分析,就能发现很多有价值的经营信息。比如:
- 哪些产品最受欢迎?
- 销量是否有周期性变化?
- 促销活动的效果如何?
作为店主,我最初是用Excel记录这些数据,但随着数据量增加,处理起来越来越麻烦。后来发现用Python的NumPy库处理一维数组数据特别高效,下面分享我的实战经验。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. NumPy环境准备与基础操作
2.1 安装NumPy库
在PyCharm中安装NumPy非常简单:
- 打开PyCharm的Terminal
- 输入命令:
pip install numpy - 如果遇到"pip不被识别"的错误,需要先配置Python环境变量
验证安装成功:
python复制import numpy as np
print(np.__version__) # 应该能正常输出版本号
2.2 创建一维数组
记录一周的奶茶销量(单位:杯):
python复制sales = np.array([120, 85, 110, 95, 130, 150, 80]) # 周一到周日
3. 基础销量分析
3.1 基本统计量计算
python复制print("总销量:", np.sum(sales)) # 770杯
print("平均日销量:", np.mean(sales)) # 110杯
print("销量标准差:", np.std(sales)) # 23.45
print("最高销量:", np.max(sales)) # 150(周六)
print("最低销量:", np.min(sales)) # 80(周日)
3.2 布尔索引应用
找出销量超过100杯的日子:
python复制good_days = sales > 100
print(sales[good_days]) # [120, 110, 130, 150]
4. 深入业务分析
4.1 周末效应分析
python复制weekend = sales[-2:] # 取最后两天(周六日)
weekday = sales[:-2] # 周一到周五
print("周末平均:", np.mean(weekend)) # 115
print("工作日平均:", np.mean(weekday)) # 108
4.2 促销效果评估
假设周三做了促销:
python复制base = np.array([100, 80, 90, 85, 120, 140, 75]) # 基准销量
promo_effect = sales - base
print("促销带来增量:", promo_effect[2]) # 周三增加20杯
5. 高级分析技巧
5.1 移动平均分析
计算3日移动平均:
python复制def moving_average(data, window):
return np.convolve(data, np.ones(window)/window, mode='valid')
print(moving_average(sales, 3)) # [105. 96.67 111.67 125. 120.]
5.2 预测模型构建
简单线性回归预测:
python复制days = np.arange(7) # 0-6代表周一到周日
slope, intercept = np.polyfit(days, sales, 1)
print(f"预测模型: y = {slope:.1f}x + {intercept:.1f}")
6. 实战经验分享
- 数据清洗很重要:实际数据可能有缺失,可以用
np.nan标记 - 注意数据类型:销量应该是整数,用
dtype=np.int32明确指定 - 可视化辅助:配合Matplotlib绘图更直观
- 性能优化:对于大数据量,NumPy比纯Python循环快100倍以上
我在实际使用中发现,每周三下午的销量会突然下降,后来调整了排班安排,在周三下午增加了促销活动,效果很好。这种细节只有通过数据分析才能发现。
