第10章:Python常用库精讲 - 站在巨人肩膀上
◆ 📌 本章导读
Python之所以强大,离不开丰富的第三方库。学会使用这些库,让你的开发效率提升10倍!
本章你将学会:
-
- ◆ ✅ NumPy进行数值计算
-
- ◆ ✅ Pandas进行数据分析
-
- ◆ ✅ requests进行网络请求
-
- ◆ ✅ Flask开发Web应用
-
- ◆ ✅ openpyxl自动化处理Excel
-
预计学习时间:5-7小时
前置知识:第9章 - 异常处理
~ ◆ ~
◆ 10.1 数据处理库
🔢 NumPy入门
NumPy是Python科学计算的基础库,提供高性能的多维数组对象。
安装
数组创建
importnumpyasnp
# 创建数组
arr = np.array([1, 2, 3, 4, 5])
print(arr) # [1 2 3 4 5]
# 多维数组
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print(matrix)
# 特殊数组
zeros = np.zeros((3, 3)) # 全0数组
ones = np.ones((2, 4)) # 全1数组
range_arr = np.arange(0, 10, 2) # [0 2 4 6 8]
random = np.random.rand(3, 3) # 随机数组
数组运算
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b) # [5 7 9]
print(a * b) # [4 10 18]
print(a ** 2) # [1 4 9]
print(np.sum(a)) # 6
print(np.mean(a))# 2.0
print(np.max(a)) # 3
广播机制
# 数组与标量运算
arr = np.array([1, 2, 3, 4])
print(arr + 10) # [11 12 13 14]
# 不同形状数组运算
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([10, 20, 30])
print(a + b)
# [[11 22 33]
# [14 25 36]]
~ ◆ ~
📊 Pandas入门
Pandas是数据分析的核心库,提供DataFrame数据结构。
安装
Series与DataFrame
importpandasaspd
# Series(一维)
s = pd.Series([1, 3, 5, 7], index=['a', 'b', 'c', 'd'])
print(s)
# DataFrame(二维表格)
data = {
'姓名': ['小明', '小红', '小刚'],
'年龄': [18, 20, 19],
'成绩': [85, 92, 78]
}
df = pd.DataFrame(data)
print(df)
数据读取与导出
# 读取CSV
df = pd.read_csv('data.csv')
# 读取Excel
df = pd.read_excel('data.xlsx')
# 导出为CSV
df.to_csv('output.csv', index=False)
# 导出为Excel
df.to_excel('output.xlsx', index=False)
数据分析
importpandasaspd
df = pd.DataFrame({
'姓名': ['小明', '小红', '小刚', '小李'],
'年龄': [18, 20, 19, 21],
'成绩': [85, 92, 78, 95]
})
# 基本信息
print(df.info())
print(df.describe())
# 筛选
high_score = df[df['成绩'] >= 90]
print(high_score)
# 排序
sorted_df = df.sort_values('成绩', ascending=False)
print(sorted_df)
# 统计
print(f"平均分:{df['成绩'].mean()}")
print(f"最高分:{df['成绩'].max()}")
print(f"最低分:{df['成绩'].min()}")
~ ◆ ~
◆ 10.2 网络请求库
🌐 requests库详解
requests让HTTP请求变得简单优雅。
安装
GET请求
importrequests
# 简单GET请求
response = requests.get('https://api.github.com')
print(response.status_code) # 200
print(response.json()) # 解析JSON响应
# 带参数
params = {'q': 'python', 'per_page': 5}
response = requests.get('https://api.github.com/search/repositories', params=params)
print(response.json())
POST请求
importrequests
data = {
'title': '我的文章',
'body': '这是内容'
}
response = requests.post('https://api.example.com/posts', json=data)
print(response.status_code)
会话保持
importrequests
# 保持Cookie
session = requests.Session()
session.get('https://example.com/login')
session.post('https://example.com/api', json={'data': 'value'})
~ ◆ ~
◆ 10.3 Web开发框架
🌐 Flask入门
Flask是轻量级Web框架,适合快速开发。
安装
第一个Flask应用
fromflaskimport Flask, render_template, jsonify
app = Flask(__name__)
@app.route('/')
defindex():
return 'Hello, Flask!'
@app.route('/user/<name>')
defuser(name):
return f'你好, {name}!'
@app.route('/api/data')
defget_data():
return jsonify({'name': '小明', 'age': 18})
if __name__ == '__main__':
app.run(debug=True)
模板渲染
fromflaskimport Flask, render_template
app = Flask(__name__)
@app.route('/hello/<name>')
defhello(name):
return render_template('hello.html', name=name)
创建templates/hello.html:
<!DOCTYPE html>
<html>
<head><title>问候</title></head>
<body>
<h1>你好, {{ name }}!</h1>
</body>
</html>
~ ◆ ~
◆ 10.4 自动化办公
📊 openpyxl(Excel操作)
安装
创建Excel
fromopenpyxlimport Workbook
wb = Workbook()
ws = wb.active
# 写入数据
ws['A1'] = '姓名'
ws['B1'] = '年龄'
ws['C1'] = '成绩'
ws.append(['小明', 18, 85])
ws.append(['小红', 20, 92])
# 保存
wb.save('students.xlsx')
读取Excel
fromopenpyxlimport load_workbook
wb = load_workbook('students.xlsx')
ws = wb.active
for row in ws.iter_rows(min_row=2, values_only=True):
print(f"姓名:{row[0]}, 年龄:{row[1]}, 成绩:{row[2]}")
~ ◆ ~
📝 python-docx(Word操作)
安装
创建Word文档
fromdocximport Document
doc = Document()
# 添加标题
doc.add_heading('Python报告', level=1)
# 添加段落
doc.add_paragraph('这是一个自动生成的报告。')
# 添加表格
table = doc.add_table(rows=3, cols=3)
table.cell(0, 0).text = '姓名'
table.cell(0, 1).text = '年龄'
table.cell(0, 2).text = '成绩'
table.cell(1, 0).text = '小明'
table.cell(1, 1).text = '18'
table.cell(1, 2).text = '85'
# 保存
doc.save('report.docx')
~ ◆ ~
◆ 📝 本章小结
核心知识点回顾
✅ NumPy:高性能数组计算,广播机制
✅ Pandas:DataFrame数据分析,读写CSV/Excel
✅ requests:HTTP请求,GET/POST,Session
✅ Flask:轻量级Web框架,路由和模板
✅ openpyxl:Excel文件读写
✅ python-docx:Word文档操作
~ ◆ ~
◆ 💬 互动环节
你最想用Python自动化处理什么日常工作?
欢迎在留言区分享,我会针对性地提供解决方案!
~ ◆ ~
学习建议:第三方库是Python的强项,建议结合自己的实际需求选择合适的库学习!