2026/1/2 12:51:41
网站建设
项目流程
做网络竞拍的网站需要什么,美食网站网页设计代码,菏泽网站建设电话咨询,为什么辽宁省城乡建设厅网站打不开第一章#xff1a;NumPy——科学计算的基础NumPy#xff08;Numerical Python#xff09;是Python生态系统中用于科学计算的核心库#xff0c;它为Python提供了强大的多维数组对象和一系列高效的数学函数。这些功能使得数据处理、线性代数运算、傅里叶变换以及随机数生成等…第一章NumPy——科学计算的基础NumPyNumerical Python是Python生态系统中用于科学计算的核心库它为Python提供了强大的多维数组对象和一系列高效的数学函数。这些功能使得数据处理、线性代数运算、傅里叶变换以及随机数生成等任务变得简单而高效。核心特性ndarray 多维数组NumPy的核心是ndarray对象它是一个同构的、固定大小的多维容器支持高效的元素级操作。与Python原生列表相比ndarray在存储和计算上更加紧凑且快速。# 创建一个二维数组 import numpy as np arr np.array([[1, 2, 3], [4, 5, 6]]) print(arr.shape) # 输出: (2, 3) print(arr.dtype) # 输出: int64上述代码创建了一个2×3的整数数组并通过shape和dtype属性查看其维度和数据类型。广播机制与向量化操作NumPy支持广播机制允许不同形状的数组进行算术运算只要它们的维度兼容。这避免了显式的循环提升了代码可读性和执行效率。数组与标量的运算会应用到每个元素形状相同的数组支持逐元素运算不同形状数组在满足广播规则时也可运算常用函数与性能优势NumPy内置大量优化过的数学函数如np.sin、np.exp、np.sum等均以C语言级别实现显著提升运算速度。函数用途np.zeros()创建全零数组np.linspace()生成等差数列np.reshape()改变数组形状第二章Pandas——数据处理与分析的核心工具2.1 Pandas数据结构详解Series与DataFrame核心数据结构概述Pandas 提供两种主要数据结构Series 和 DataFrame。Series 类似于一维数组带有标签索引DataFrame 则是二维表格结构支持不同类型的列数据。Series 的创建与特性import pandas as pd s pd.Series([1, 3, 5, 7], index[a, b, c, d])该代码创建一个带自定义索引的 Series。其本质是值数组与索引数组的映射支持基于标签的访问如s[b]返回 3。DataFrame 的构建与操作df pd.DataFrame({ 姓名: [张三, 李四], 年龄: [25, 30] }, index[1, 2])此 DataFrame 包含两列数据使用字典构造每列可视为一个 Series。通过df[年龄]可提取指定列。结构维度索引支持Series1D行索引DataFrame2D行列双索引2.2 数据清洗实战处理缺失值与重复数据在真实业务场景中数据往往存在缺失或重复问题直接影响分析结果的准确性。必须通过系统化方法进行清洗。识别与处理缺失值使用Pandas可快速检测缺失值分布import pandas as pd # 示例数据 df pd.DataFrame({A: [1, None, 3], B: [None, 2, 2]}) print(df.isnull().sum()) # 统计每列缺失数量该代码输出各字段缺失计数。根据业务逻辑可选择填充如df.fillna(0)或删除df.dropna()策略。去除重复数据重复记录可通过drop_duplicates方法清除df_clean df.drop_duplicates(subset[A, B], keepfirst)参数subset指定比对字段keep控制保留首条或末条记录有效确保数据唯一性。2.3 数据筛选与索引高级操作在处理大规模数据集时高效的数据筛选与索引策略至关重要。通过合理构建索引可显著提升查询性能。复合索引的创建与使用CREATE INDEX idx_user_status ON users (department, status, created_at);该语句在 users 表上建立复合索引优先按部门、状态和创建时间排序。查询中若包含这些字段的前缀匹配即可命中索引避免全表扫描。条件筛选优化技巧利用覆盖索引减少回表次数避免在索引列上使用函数或表达式优先使用等值比较再结合范围查询执行计划分析字段说明type连接类型ALL表示全表扫描ref表示非唯一索引扫描key实际使用的索引rows预估扫描行数2.4 分组聚合与透视表应用分组聚合基础操作在数据分析中分组聚合是提取关键统计信息的核心手段。通过pandas.DataFrame.groupby()方法可按指定列对数据进行分组并应用聚合函数如sum()、mean()等。import pandas as pd df pd.DataFrame({ 部门: [销售, 技术, 销售, 技术], 薪资: [8000, 12000, 9000, 13000] }) result df.groupby(部门).薪资.mean()上述代码按“部门”列分组计算每组薪资的平均值。其中groupby(部门)指定分组键薪资.mean()对目标列执行均值运算。透视表构建多维分析使用pd.pivot_table()可快速生成多维度汇总表支持多级索引与多重聚合。部门职位薪资销售经理9000技术工程师125002.5 实战案例从CSV到数据分析报告在本节中我们将演示如何将一个原始的销售数据CSV文件转化为一份结构清晰的数据分析报告。整个流程涵盖数据加载、清洗、分析到可视化输出。数据读取与初步探索使用Python的pandas库加载CSV数据import pandas as pd # 读取CSV文件 df pd.read_csv(sales_data.csv) print(df.head()) # 查看前5行数据该代码片段通过pd.read_csv加载数据并用head()快速预览结构确认列名和缺失值情况。关键指标计算总销售额sum(revenue)月度增长率(本月 - 上月) / 上月热销产品Top 5结果输出为报表最终生成HTML格式报告包含表格和图表指标数值总销售额¥1,240,000订单数8,450第三章Matplotlib与数据可视化3.1 基本图表绘制折线图、柱状图与散点图使用Matplotlib绘制基础图表在数据可视化中折线图、柱状图和散点图是最常用的图表类型。它们分别适用于展示趋势、对比和分布关系。Python中的Matplotlib库提供了简洁的接口来实现这些图表。import matplotlib.pyplot as plt # 示例数据 x [1, 2, 3, 4, 5] y_line [2, 4, 6, 8, 10] y_bar [3, 7, 5, 9, 2] y_scatter [1, 5, 3, 8, 6] # 折线图 plt.plot(x, y_line, label趋势) # 柱状图 plt.bar(x, y_bar, label对比) # 散点图 plt.scatter(x, y_scatter, label分布) plt.legend() plt.show()上述代码中plt.plot()用于绘制连续趋势plt.bar()展示分类数据对比plt.scatter()揭示变量间潜在关系。参数label用于图例标注增强可读性。图表选择建议折线图适合时间序列或有序数据的趋势分析柱状图适用于不同类别间的数值比较散点图用于发现两个变量之间的相关性或聚类模式3.2 多子图布局与图形定制化在复杂数据可视化场景中多子图布局能够将多个相关图表组织在同一画布中提升信息对比与关联分析效率。通过网格划分或自定义位置可灵活配置子图排列方式。子图布局模式常见的布局方式包括水平排列、垂直堆叠和网格分布。Matplotlib 提供 plt.subplots() 实现多子图管理fig, axes plt.subplots(2, 3, figsize(12, 8)) for i in range(2): for j in range(3): axes[i, j].plot([0, 1, 2], [i, j, ij]) axes[i, j].set_title(fSubplot ({i1},{j1}))上述代码创建 2×3 网格结构axes 为二维数组每个元素对应一个子图对象支持独立绘图操作。figsize 控制整体画布大小避免图表拥挤。图形定制化选项通过set_xlabel()和set_ylabel()自定义坐标轴标签使用tick_params()调整刻度线样式结合legend()优化图例位置与显示内容3.3 实战基于真实数据集的可视化分析加载与预处理数据使用 Pandas 加载 CSV 格式的真实销售数据集并进行缺失值处理和时间字段解析。import pandas as pd # 读取数据并解析日期列 df pd.read_csv(sales_data.csv, parse_dates[order_date]) # 填充数值型字段的缺失值 df[sales] df[sales].fillna(df[sales].mean())代码中parse_dates确保时间序列可被识别fillna使用均值策略保持数据分布稳定。可视化趋势分析利用 Matplotlib 绘制月度销售额变化趋势图揭示季节性波动特征。按月份聚合销售总额绘制折线图观察增长趋势标注峰值点用于业务归因分析第四章Requests与网络爬虫入门4.1 HTTP请求基础与Requests库核心方法HTTPHyperText Transfer Protocol是客户端与服务器之间通信的基础协议。在Python中requests库以其简洁的API成为发送HTTP请求的事实标准。常用HTTP方法与对应操作GET获取资源如网页内容或API数据POST提交数据常用于表单提交或创建资源PUT/PATCH更新已有资源DELETE删除指定资源使用Requests发送GET请求import requests response requests.get(https://httpbin.org/get, params{key: value}) print(response.status_code) # 输出状态码如200 print(response.json()) # 解析JSON响应上述代码通过params参数自动编码查询字符串response.json()将响应体解析为Python字典适用于处理RESTful API返回的数据。POST请求提交表单数据data {username: admin, password: 123456} response requests.post(https://httpbin.org/post, datadata)此处data参数以表单形式application/x-www-form-urlencoded发送数据常用于模拟登录场景。4.2 解析HTML内容结合BeautifulSoup实践在网页抓取过程中解析HTML结构是提取有效信息的关键步骤。BeautifulSoup 是 Python 中广泛使用的库擅长将杂乱的 HTML 文本转化为可操作的对象树。安装与基础用法首先通过 pip 安装库pip install beautifulsoup4该命令安装 BeautifulSoup4 主包依赖解析器如 lxml 或 html.parser。解析HTML文档使用 BeautifulSoup 解析网页内容并定位元素from bs4 import BeautifulSoup import requests response requests.get(https://example.com) soup BeautifulSoup(response.text, html.parser) title soup.find(h1).get_text()find()方法返回首个匹配标签get_text()提取其中纯文本内容避免HTML标签干扰。常用选择方式对比方法用途find()获取第一个匹配节点find_all()获取所有匹配节点列表select()支持CSS选择器语法4.3 模拟登录与会话维持技巧在自动化测试或爬虫开发中模拟登录是获取受权限保护资源的关键步骤。通常通过捕获浏览器登录时的请求参数复用 Cookie 或 Token 实现身份保持。常见认证机制基于 Session Cookie 的服务器端认证JWTJSON Web Token无状态认证OAuth 2.0 第三方授权登录Python 示例使用 requests 维持会话import requests session requests.Session() login_url https://example.com/login payload {username: test, password: 123456} # 发起登录请求自动保存 Cookie response session.post(login_url, datapayload) if response.status_code 200: # 后续请求自动携带认证信息 profile session.get(https://example.com/profile) print(profile.text)上述代码利用requests.Session()自动管理 Cookie实现跨请求的会话保持。相比单次请求Session 对象能持久化头部、Cookie 和连接提升效率并模拟真实用户行为。4.4 实战项目天气数据抓取与存储API 数据获取使用 Python 的requests库向 OpenWeatherMap 发起 GET 请求获取指定城市的实时天气数据。需在请求头中携带有效 API 密钥。import requests def fetch_weather(city, api_key): url fhttp://api.openweathermap.org/data/2.5/weather params {q: city, appid: api_key, units: metric} response requests.get(url, paramsparams) return response.json()参数说明city为城市名api_key是用户认证密钥unitsmetric表示温度以摄氏度返回。数据持久化存储将获取的 JSON 数据写入本地 SQLite 数据库确保结构化存储便于后续分析。创建 weather_data 表包含字段city, temperature, humidity, timestamp使用sqlite3模块执行 INSERT 语句每小时定时任务通过schedule模块触发第五章Flask——轻量级Web应用开发快速搭建一个RESTful API服务使用Flask可以迅速构建一个轻量级的API服务。以下是一个实现用户查询接口的示例支持JSON响应和路径参数from flask import Flask, jsonify, request app Flask(__name__) # 模拟用户数据 users { 1: {name: Alice, email: aliceexample.com}, 2: {name: Bob, email: bobexample.com} } app.route(/api/user/int:user_id, methods[GET]) def get_user(user_id): user users.get(user_id) if not user: return jsonify({error: User not found}), 404 return jsonify(user) app.route(/api/user, methods[POST]) def create_user(): data request.get_json() new_id max(users.keys()) 1 users[new_id] {name: data[name], email: data[email]} return jsonify({id: new_id, **users[new_id]}), 201 if __name__ __main__: app.run(debugTrue)Flask扩展生态的实际应用在生产环境中通常会结合以下扩展提升开发效率与系统能力Flask-SQLAlchemy简化数据库操作支持ORM模型定义Flask-WTF处理表单验证与CSRF防护Flask-Login管理用户会话与身份认证Flask-CORS轻松启用跨域资源共享部署前的关键配置项配置项开发环境值生产环境建议值DEBUGTrueFalseSECRET_KEYdev-key随机生成的长字符串SQLALCHEMY_DATABASE_URIsqlite:///app.dbpostgresql://user:passlocalhost/prod_db第六章Scikit-learn——机器学习入门利器第七章TensorFlow与PyTorch——深度学习双雄第八章OpenCV——计算机视觉实战工具第九章SQLAlchemy——Python中的数据库ORM第十章Logging——专业级日志管理方案第十一章Threading与Multiprocessing——并发编程实践第十二章总结与进阶学习路径