Python基础、数据科学入门NumPy(数值计算)、Pandas(数据处理)、Matplotlib(数据可视化)附视频教程
Python基础 + 数据科学入门指南
- Python是数据科学领域最主流的编程语言,其简洁的语法、丰富的库生态(如NumPy、Pandas、Matplotlib)使其成为入门数据科学的首选工具。本文将从Python基础语法入手,逐步过渡到数据科学核心工具,最后通过实战案例帮助你掌握入门级数据科学工作流。
- 视频教程:
https://pan.quark.cn/s/608adfeae3f9
第一部分:Python基础语法(必学核心)
Python基础是数据科学的“地基”,无需掌握所有高级特性,重点攻克以下核心模块即可满足数据科学入门需求。
1. 环境搭建:快速上手Python
首先需要安装Python解释器和代码编辑器,推荐“Anaconda + VS Code”组合(新手友好,自带数据科学常用库):
- Anaconda:包含Python解释器、conda包管理器和150+数据科学库(无需手动安装NumPy/Pandas),下载地址:Anaconda官网
- VS Code:轻量型代码编辑器,安装“Python”插件后可直接运行代码,支持语法提示和调试,下载地址:VS Code官网
安装完成后,打开VS Code新建.py
文件,输入print("Hello Data Science!")
,点击运行按钮,若输出字符串则环境搭建成功。
2. 核心语法:数据科学常用知识点
(1)变量与数据类型
数据科学中处理的核心是“数据”,需先掌握Python的基础数据类型:
数据类型 | 说明 | 示例 | 数据科学用途 |
---|---|---|---|
整数(int) | 无小数部分的数字 | age = 25 | 计数(如样本数量、类别编号) |
浮点数(float) | 带小数部分的数字 | score = 98.5 | 连续型数据(如身高、收入) |
字符串(str) | 文本信息,用引号包裹 | name = "data" | 处理标签(如用户ID、类别名称) |
列表(list) | 有序、可修改的元素集合,用[] 表示 | nums = [1, 2, 3, 4] | 存储一维数据(如一列数值) |
字典(dict) | 键值对(key-value)集合,用{} 表示 | student = {"name": "Tom", "age": 20} | 存储结构化数据(如一条样本) |
数组(array) | (需NumPy库)高效存储数值的多维结构 | import numpy as np; arr = np.array([1,2,3]) | 数据科学核心数据结构 |
常用操作示例:
# 列表操作(提取、修改、切片)
data = [10, 20, 30, 40, 50]
print(data[0]) # 提取第一个元素:10(Python索引从0开始)
print(data[1:3]) # 切片(左闭右开):[20, 30]
data[2] = 35 # 修改元素:data变为[10,20,35,40,50]# 字典操作(按key取值)
sample = {"height": 175.5, "weight": 68.2, "gender": "male"}
print(sample["weight"]) # 输出:68.2
(2)控制流:循环与判断
数据处理中常需“筛选数据”(判断)或“批量计算”(循环),核心语法如下:
-
if-else判断(筛选数据):
score = 85 if score >= 90:print("优秀") elif score >= 80:print("良好") # 输出:良好 else:print("及格")
-
for循环(批量处理):
# 计算列表中所有元素的平均值 nums = [12, 15, 18, 20, 25] total = 0 for num in nums:total += num # 累加每个元素 average = total / len(nums) print(average) # 输出:18.0
-
列表推导式(简化循环,数据科学常用):
# 快速生成“nums中大于15的元素”组成的新列表 nums = [12, 15, 18, 20, 25] filtered_nums = [x for x in nums if x > 15] print(filtered_nums) # 输出:[18, 20, 25]
(3)函数:封装重复逻辑
数据科学中常需重复使用“计算均值”“标准化”等逻辑,用函数封装可提高效率:
# 定义一个计算均值的函数
def calculate_average(data):total = sum(data)avg = total / len(data)return avg # 返回计算结果# 调用函数
scores = [88, 92, 79, 95, 85]
print(calculate_average(scores)) # 输出:87.8
第二部分:数据科学核心库(入门三件套)
掌握Python基础后,重点学习NumPy(数值计算)、Pandas(数据处理)、Matplotlib(数据可视化) ——这三个库是数据科学的“基石”,覆盖从数据加载、清洗到分析、展示的全流程。
1. NumPy:高效数值计算库
NumPy的核心是ndarray(多维数组),相比Python列表,它支持批量数值运算(无需循环),且运算速度更快,是Pandas和Matplotlib的底层依赖。
核心用法:
import numpy as np # 导入库(约定简写为np)# 1. 创建数组
arr1 = np.array([1, 2, 3, 4]) # 一维数组
arr2 = np.array([[1, 2], [3, 4]]) # 二维数组(2行2列)# 2. 数组属性(了解数据结构)
print(arr2.shape) # 输出:(2, 2)(行数×列数)
print(arr2.dtype) # 输出:int64(数据类型)# 3. 批量运算(无需循环,核心优势)
arr3 = arr1 * 2 # 每个元素乘2
print(arr3) # 输出:[2 4 6 8]# 4. 常用函数(统计、聚合)
print(np.mean(arr1)) # 均值:2.5
print(np.max(arr1)) # 最大值:4
print(np.sum(arr2, axis=0)) # 按列求和:[4 6](axis=0列,axis=1行)
2. Pandas:数据处理与分析库
Pandas是数据科学的“瑞士军刀”,核心数据结构是DataFrame(表格型数据),可轻松实现“加载Excel/CSV数据、缺失值处理、筛选、分组统计”等高频操作。
核心用法(以CSV数据为例):
假设我们有一份“学生成绩数据”scores.csv
,内容如下:
name | math | english | gender |
---|---|---|---|
Tom | 92 | 88 | male |
Lily | 95 | 93 | female |
Jack | 80 | 75 | male |
用Pandas处理该数据的示例:
import pandas as pd # 导入库(约定简写为pd)# 1. 加载数据(支持CSV/Excel/数据库等)
df = pd.read_csv("scores.csv") # df是DataFrame对象(表格)
print(df.head()) # 查看前5行数据(默认5行,避免数据过多)# 2. 查看数据基本信息(数据科学第一步:了解数据)
print(df.info()) # 查看列名、数据类型、缺失值数量
print(df.describe()) # 查看数值列(math/english)的统计指标(均值、标准差等)# 3. 数据筛选(按条件提取行)
# 筛选“math成绩>90”的学生
high_math = df[df["math"] > 90]
print(high_math)# 4. 缺失值处理(数据清洗核心步骤)
# 查看各列缺失值数量
print(df.isnull().sum())
# 若有缺失值,可填充均值(数值列)或删除行
df["math"] = df["math"].fillna(df["math"].mean()) # 用math列均值填充缺失值# 5. 分组统计(按类别分析数据)
# 按gender分组,计算math和english的平均分
gender_avg = df.groupby("gender")[["math", "english"]].mean()
print(gender_avg)
3. Matplotlib:数据可视化库
“一图胜千言”,Matplotlib可绘制折线图、柱状图、散点图等,帮助直观理解数据规律(如相关性、分布)。
核心用法(结合Pandas数据绘图):
import matplotlib.pyplot as plt # 导入库(约定简写为plt)
import pandas as pd# 加载数据(延续上文的学生成绩数据)
df = pd.read_csv("scores.csv")# 1. 绘制柱状图(比较不同学生的math成绩)
plt.figure(figsize=(8, 4)) # 设置图的大小(宽×高)
plt.bar(df["name"], df["math"], color="skyblue") # 柱状图:x=姓名,y=math成绩
plt.title("Student Math Scores") # 图标题
plt.xlabel("Name") # x轴标签
plt.ylabel("Math Score") # y轴标签
plt.show() # 显示图片# 2. 绘制散点图(分析math和english成绩的相关性)
plt.figure(figsize=(8, 4))
plt.scatter(df["math"], df["english"], color="orange") # 散点图:x=math,y=english
plt.title("Math vs English Scores")
plt.xlabel("Math Score")
plt.ylabel("English Score")
plt.show()
第三部分:进阶方向
- 机器学习:学习Scikit-learn库,掌握线性回归、决策树、随机森林等基础算法
- 深度学习:学习TensorFlow/PyTorch库,应用于图像识别、自然语言处理
- 大数据处理:学习Spark(PySpark),处理百万级以上大规模数据
通过以上内容,你可以搭建起Python数据科学的基础框架。建议先从“Python基础+Pandas”入手,多做数据清洗和分析练习,再逐步学习可视化和算法,积累实战经验是关键!