3、Python数据分析环境搭建:Anaconda安装、Jupyter Notebook使用、NumPy基础、Pandas基础、Matplotlib基础

说实话,很多初学者一上来就问我:「老师,我该装什么软件?」

我的回答永远是:先装 Anaconda。为什么?因为它把 Python 解释器、常用库、还有 Jupyter Notebook 一股脑全给你打包好了。我当年刚入行时,光装个 NumPy 就折腾了半天,各种依赖冲突,气得想砸电脑。后来用了 Anaconda,嗯,真香。

本章核心目标:让你在 30 分钟内,从零搭建好一套能跑故障预测分析的 Python 环境。包括安装、写代码、做计算、画图。

3.1 Anaconda 安装:别选错版本

Anaconda 是什么?说白了就是一个 Python 的「全家桶」。你装好它,就等于有了 Python、有了 300 多个常用库、还有 Jupyter Notebook 这个神器。

安装步骤:

  1. 去官网下载 Anaconda(选 Python 3.x 版本,别选 2.7 了,那都是老黄历)
  2. 安装时记得勾选「Add Anaconda to my PATH environment variable」
  3. 安装完成后,打开命令行输入 conda --version,看到版本号就说明成了

⚠️ 我曾经踩过的坑:安装路径不要有中文!不要有空格!我之前有个学生装在了「D:\数据分析工具」这个文件夹里,结果 Jupyter 死活打不开。改成「D:\DataTool」就好了。

3.2 Jupyter Notebook:你的第一个交互式笔记本

Jupyter Notebook 是我个人最常用的工具。它让你能一边写代码,一边看结果,还能加注释、画图。非常适合做故障预测的探索性分析。

启动方式:

  • 在命令行输入 jupyter notebook
  • 浏览器会自动打开一个页面,点右上角的「New」→「Python 3」

你想想看,传统写代码是:写完整段 → 运行 → 看结果 → 改代码。但在 Jupyter 里,你可以一个格子一个格子地跑,哪里错了改哪里。我在做轴承故障数据清洗时,经常一个格子跑 10 万条数据,看一眼分布,再跑下一个格子。效率翻倍。

💡 小技巧:Shift + Enter 运行当前格子并跳到下一个。按 Esc + B 在下方插入新格子。这两个快捷键我每天用上百次。

3.3 NumPy 基础:数组才是王道

NumPy 是 Python 科学计算的基石。说白了,它让 Python 能像 MATLAB 一样做矩阵运算。故障预测里,传感器数据全是数组,你绕不开它。

核心概念:

  • ndarray:N 维数组对象,比 Python 的 list 快 50 倍以上
  • 向量化运算:不用写循环,直接对整个数组做运算
import numpy as np

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

# 创建一个 3x3 的随机矩阵
rand_matrix = np.random.randn(3, 3)
print(rand_matrix)

# 故障预测中常用的统计量
data = np.array([0.5, 0.7, 0.6, 0.9, 1.2])
print(f"均值: {np.mean(data):.3f}")
print(f"标准差: {np.std(data):.3f}")

我在项目中遇到过一个问题:用 Python 原生 list 处理 100 万条振动数据,跑了 3 分钟还没出结果。换成 NumPy 数组后,0.3 秒搞定。你想想看,差了 600 倍!

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

Pandas 是处理结构化数据的利器。故障预测里,你的数据通常是这样的:

时间戳 温度 振动 转速 故障标签
2024-01-01 00:00:00 45.2 0.12 1500 0
2024-01-01 00:01:00 45.8 0.15 1498 0

核心操作:

import pandas as pd

# 读取 CSV 文件(故障数据通常存成 CSV)
df = pd.read_csv('sensor_data.csv')

# 看一眼数据长什么样
print(df.head())      # 前5行
print(df.info())      # 列名、类型、缺失值

# 筛选出温度大于 50 度的异常数据
anomaly = df[df['温度'] > 50]
print(f"发现 {len(anomaly)} 条异常记录")

# 分组统计:按故障标签算平均温度
print(df.groupby('故障标签')['温度'].mean())

避坑指南:我曾经在处理一个 500 万行的故障数据集时,直接用 df.iterrows() 逐行遍历,结果跑了 20 分钟。后来改成向量化操作,5 秒搞定。记住:能用 Pandas 内置函数就别自己写循环

3.5 Matplotlib 基础:一图胜千言

故障预测里,你经常需要看趋势、看分布、看异常点。Matplotlib 就是干这个的。

import matplotlib.pyplot as plt
import numpy as np

# 生成模拟的振动数据
time = np.arange(0, 10, 0.01)
vibration = np.sin(2 * np.pi * time) + 0.1 * np.random.randn(len(time))

# 画个折线图
plt.figure(figsize=(10, 4))
plt.plot(time, vibration, label='振动信号', color='blue', linewidth=0.8)
plt.xlabel('时间 (秒)')
plt.ylabel('振幅')
plt.title('轴承振动信号 - 正常状态')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()

我个人习惯是:先画图看看数据长什么样,再做分析。有一次我接手一个电机故障项目,对方给了 10 万行数据。我第一件事就是画了个散点图,结果发现 80% 的数据都是传感器故障导致的异常值。要是直接建模,那可就全白费了。

💡 我的经验:在 Jupyter 里用 %matplotlib inline 可以让图表直接显示在格子下方。配合 plt.subplots() 可以同时画多个子图,对比不同传感器的数据。

3.6 本章知识体系总览

下面这张图,是我自己总结的「故障预测 Python 环境搭建」核心逻辑。你照着这个路径走,不会迷路。

故障预测 Python 环境搭建知识体系 Anaconda 安装 Jupyter Notebook NumPy 数组运算 Pandas 数据清洗 Matplotlib 可视化 故障预测分析

这张图你看懂了吗?从上到下,就是一条清晰的路径:装好 Anaconda → 用 Jupyter 写代码 → 用 NumPy 做数组运算 → 用 Pandas 清洗表格数据 → 用 Matplotlib 画图看趋势。每一步都是下一步的基础。

最后说一句:环境搭建是门槛,但跨过去之后,你会发现故障预测的世界特别精彩。我见过太多人卡在安装这一步就放弃了,真的可惜。按我上面说的做,30 分钟搞定。如果遇到问题,记住:错误信息是最好的老师,把报错复制到搜索引擎里,99% 的问题都有答案。

专注资料整理