第二课:环境搭建——Python、Jupyter Notebook与三大库的安装配置

好,咱们正式开始动手了。

做功耗分析,说白了就是跟数据打交道。你想想看,电池续航日志、电流电压采样、温度变化曲线……这些数据不会自己说话,得靠工具去解读。而Python,就是我这些年用得最顺手的“翻译官”。

这一章,我带你把整个环境搭起来。别小看这一步,我见过太多人卡在安装环节,折腾半天连个DataFrame都打不开。嗯,咱们一次搞定。

2.1 Python环境:选对版本,少走弯路

我个人习惯用Python 3.8到3.11之间的版本。为什么?因为太新的版本(比如3.12、3.13)有些库还没完全适配,你装的时候可能会报错。太老的版本(3.6以下)又缺一些语法糖,写起来不爽。

我建议你直接装Anaconda。它自带Python、包管理器conda,还有一大堆常用库。省心。

下载地址:https://www.anaconda.com/download

选Windows、macOS或Linux版本,根据你的系统来。我当年在Windows上踩过坑——记得勾选“Add Anaconda to my PATH environment variable”,不然命令行里找不到python命令。

装完之后,打开终端(Windows用cmd或PowerShell,macOS/Linux用Terminal),输入:

python --version

如果看到类似 Python 3.9.13 的输出,恭喜,环境成了。

小技巧:我习惯用 conda create -n battery_analysis python=3.9 创建一个独立的环境。这样不同项目之间不会互相干扰。你想想看,要是某个库升级把别的项目搞崩了,多闹心。

2.2 Jupyter Notebook:交互式分析的利器

做数据分析,我几乎离不开Jupyter Notebook。它让你能边写代码边看结果,还能加注释、画图表,特别适合探索性的功耗分析工作。

安装很简单。在终端里输入:

pip install jupyter notebook

或者如果你用Anaconda,它已经自带了。启动方式:

jupyter notebook

浏览器会自动打开一个页面,默认地址是 http://localhost:8888。点右上角的“New” -> “Python 3”,就能新建一个笔记本了。

注意:我曾经在服务器上跑Jupyter,结果忘了设置密码,被外人连进来乱搞。所以如果你要在远程服务器上用,记得配个密码:jupyter notebook password

在笔记本里,你可以按 Shift + Enter 运行当前单元格。我刚开始用的时候老忘记,结果代码写了一大堆,一运行全是语法错误……嗯,习惯就好。

2.3 Pandas:处理电池日志的核心工具

Pandas,说白了就是Python版的Excel。但它比Excel强太多了——处理几十万行数据不卡顿,各种筛选、聚合、合并操作一行代码搞定。

安装:

pip install pandas

导入习惯:

import pandas as pd

我处理电池日志时,最常用的几个操作:

  • 读取CSV:df = pd.read_csv('battery_log.csv')
  • 查看前5行:df.head()
  • 查看数据类型:df.dtypes
  • 处理缺失值:df.dropna()df.fillna(method='ffill')

避坑指南:我曾经遇到一个日志文件,时间戳列是字符串格式,直接做时间差计算全错了。记得用 pd.to_datetime() 转换一下。

2.4 Matplotlib:画图的基础框架

Matplotlib是Python画图的“老祖宗”。虽然它默认的样式有点丑,但胜在灵活——你想怎么调就怎么调。

安装:

pip install matplotlib

导入习惯:

import matplotlib.pyplot as plt

画一个简单的电压曲线:

plt.plot(df['time'], df['voltage'])
plt.xlabel('时间 (s)')
plt.ylabel('电压 (V)')
plt.title('电池放电曲线')
plt.show()

我个人习惯在Jupyter里加一行 %matplotlib inline,这样图表直接显示在单元格下方,不用弹窗。

小技巧:plt.style.use('ggplot')plt.style.use('seaborn-v0_8') 能让图表好看不少。我早期画的图那叫一个丑,后来发现换个样式就顺眼多了。

2.5 Seaborn:让图表更专业

Seaborn是建立在Matplotlib之上的高级库。它简化了很多操作,比如画热力图、箱线图、分布图,一行代码搞定。

安装:

pip install seaborn

导入习惯:

import seaborn as sns

举个例子,你想看不同温度下电池容量的分布:

sns.boxplot(x='temperature', y='capacity', data=df)
plt.show()

你想想看,用Matplotlib画这个得写十几行代码,Seaborn一行就完了。省下来的时间,喝杯咖啡不香吗?

注意:Seaborn的某些功能依赖Matplotlib的版本。如果你遇到 AttributeError,多半是版本不匹配。我建议统一用 pip install --upgrade matplotlib seaborn 升级到最新。

2.6 验证环境:跑一个完整的例子

环境搭没搭好,跑个例子就知道了。我在Jupyter里新建一个笔记本,输入以下代码:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 生成模拟数据
import numpy as np
time = np.arange(0, 3600, 10)  # 每10秒一个采样点
voltage = 3.7 - 0.0001 * time + np.random.normal(0, 0.02, len(time))

df = pd.DataFrame({'time': time, 'voltage': voltage})

# 画图
plt.figure(figsize=(10, 4))
plt.plot(df['time'], df['voltage'], label='电压', color='blue')
plt.xlabel('时间 (s)')
plt.ylabel('电压 (V)')
plt.title('模拟电池放电曲线')
plt.legend()
plt.grid(True)
plt.show()

如果能看到一条下降的曲线,说明环境全部就绪。

总结一下:Python + Jupyter Notebook + Pandas + Matplotlib + Seaborn,这五个工具就是咱们做功耗分析的“五虎将”。后面每一章都会用到它们。

好,环境搭完了。下一章咱们开始真正分析电池日志——从数据导入到初步探索,一步步来。