第一章:Python与数据科学基础

说实话,很多做储能的朋友一听到「编程」两个字就头大。我当年也是。

但干我们这行的,谁没被Excel折磨过?几千条充放电数据,手动算收益,算到凌晨两点。后来我咬咬牙学了Python,才发现——原来很多苦,真的没必要吃。

这一章,我们就从零开始,把Python和数据科学的基础打牢。别怕,我会用最接地气的方式带你走一遍。

1.1 Python环境搭建:为什么我推荐Anaconda

Python本身只是一个解释器,但做数据分析,你需要一堆库。一个个装?太累了。

Anaconda 就是一个「全家桶」。装好它,NumPy、Pandas、Matplotlib、Jupyter Notebook 全都有了。我入行时用的就是它,到现在项目里也离不开。

我的建议: 新手别折腾什么虚拟环境、pip install 一个个装。直接上 Anaconda,省心。

安装步骤(几句话带过)

  1. 去官网下载 Anaconda(Python 3.x 版本)
  2. 一路默认安装,记得勾选「Add Anaconda to my PATH」
  3. 打开 Anaconda Navigator,启动 Jupyter Notebook
小技巧: 我习惯把 Jupyter Notebook 的默认路径改到项目文件夹。这样每次打开,直接看到自己的代码文件。

1.2 NumPy基础:数组运算,快得离谱

NumPy 是 Python 数据科学的基石。说白了,它让 Python 能像 MATLAB 一样做矩阵运算。

我在做储能电池的SOC估算时,经常要处理上万条电压、电流数据。用Python原生列表算?慢到怀疑人生。换成NumPy数组,速度提升几十倍。

核心概念:ndarray

NumPy 的核心就是 ndarray(N维数组)。你可以把它理解成「升级版列表」——支持元素级运算,而且快。

import numpy as np

# 创建数组
arr = np.array([1, 2, 3, 4, 5])
print(arr * 2)  # 输出 [2 4 6 8 10]

# 创建全零数组
zeros = np.zeros((3, 4))  # 3行4列
print(zeros)
注意: 我曾经犯过一个错——直接用Python列表做大规模运算,结果程序跑了一小时没出结果。换成NumPy,十秒搞定。所以,处理数值数据,别用列表,用数组。

常用操作

操作 代码示例 说明
创建数组 np.array([1,2,3]) 从列表创建
创建全1数组 np.ones((2,3)) 2行3列
等差序列 np.arange(0, 10, 2) 0到10,步长2
随机数 np.random.randn(5) 标准正态分布
数组形状 arr.reshape(2,3) 改变维度
避坑指南: 我曾经在reshape时忘了检查元素总数是否匹配,结果报错。记住:reshape前后元素个数必须一致。

1.3 Pandas基础:表格数据的瑞士军刀

如果说NumPy管的是「数组」,那Pandas管的就是「表格」。做储能数据分析,你面对的基本都是表格——充放电记录、电价数据、气象数据……Pandas就是为这个而生的。

核心数据结构:DataFrame

DataFrame 你可以想象成Excel表格,有行有列,但操作起来比Excel灵活一百倍。

import pandas as pd

# 创建DataFrame
data = {
    '时间': ['2024-01-01 00:00', '2024-01-01 01:00', '2024-01-01 02:00'],
    'SOC(%)': [20, 35, 50],
    '功率(kW)': [100, 150, 200]
}
df = pd.DataFrame(data)
print(df)

常用操作

  • 读取CSV: df = pd.read_csv('data.csv')
  • 查看前5行: df.head()
  • 筛选数据: df[df['SOC(%)'] > 30]
  • 分组统计: df.groupby('时间').mean()
我的经验: 做储能收益分析时,我经常用Pandas的 groupby 按小时聚合数据,然后算每个时段的充放电收益。一行代码搞定,比Excel透视表快多了。

1.4 数据可视化:Matplotlib与Seaborn

数据光看数字没感觉,画成图才直观。比如储能系统的充放电曲线、电价波动趋势,一张图胜过千言万语。

Matplotlib:基础绘图工具

Matplotlib 是Python最经典的绘图库。功能强大,但代码稍显啰嗦。

import matplotlib.pyplot as plt
import numpy as np

# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 绘图
plt.plot(x, y, label='sin(x)')
plt.xlabel('时间 (h)')
plt.ylabel('功率 (kW)')
plt.title('储能系统功率曲线')
plt.legend()
plt.show()
小技巧: 我习惯在Jupyter里加一行 %matplotlib inline,这样图表直接显示在代码下方,不用弹窗。

Seaborn:更漂亮的统计图

Seaborn 基于 Matplotlib,但默认样式更美观,而且专门为统计图表设计。

import seaborn as sns
import pandas as pd

# 示例数据
df = pd.DataFrame({
    '时段': ['峰时', '平时', '谷时'],
    '收益(元)': [500, 300, 200]
})

# 绘制柱状图
sns.barplot(x='时段', y='收益(元)', data=df)
plt.title('不同时段的储能收益')
plt.show()
注意: 我曾经在画图时忘了设置中文字体,结果所有标签都变成方框。解决方案:plt.rcParams['font.sans-serif'] = ['SimHei']

知识体系总览

下面这张图,帮你把这一章的核心逻辑串起来。我画图时习惯用SVG,清晰又轻量。

Python与数据科学基础 环境搭建 Anaconda NumPy 数组运算 Pandas 表格处理 可视化 Matplotlib/Seaborn Jupyter Notebook 矩阵运算/线性代数 数据清洗/聚合 趋势图/柱状图 最终目标:用Python高效处理储能数据 从数据读取 → 分析计算 → 可视化展示,一气呵成

本章小结

这一章我们走完了Python数据科学的四个基础模块:环境搭建、NumPy、Pandas、可视化。你想想看,这些工具组合起来,能做什么?

举个实际例子:我做过一个储能项目,需要分析过去一年的充放电数据。用Pandas读取CSV,用NumPy做SOC计算,最后用Matplotlib画出收益曲线。整个过程不到50行代码,比Excel手动操作快了不知道多少倍。

嗯,基础打牢了,后面讲AI算法时你才不会慌。记住:工具是死的,思路是活的。多动手敲代码,比光看强一百倍。

专注资料整理