当前位置: 首页 > news >正文

数据科学与爬虫技术学习笔记

数据科学与爬虫技术学习笔记

一、数据科学基础库

1. NumPy:数值计算的基石

NumPy 是 Python 科学计算的核心库,专为数组和矩阵操作设计,能大幅简化循环操作,提供丰富的数学函数。

  • 核心优势:高效处理同类型元素的多维数组,支持向量化运算。

  • 安装与导入

    pip install numpy  # 或 conda install numpy
    import numpy as np  # 常规别名
    
  • 核心对象

    • Ndarray:N 维数组,支持 0 下标索引,元素类型统一。
    • 维度(axis):0 为行方向,1 为列方向,更高维度依次递增。
  • 数组创建函数

    • array():从列表或嵌套列表创建数组。
    • empty()/zeros()/ones():创建指定形状的空数组、全 0 数组、全 1 数组。
    • full(shape, fill_value):创建填充指定值的数组。
    • arange(start, stop, step):生成等差数列。
    • linspace()/logspace():生成等间隔 / 等比数列。
    • 随机数组:random.rand()([0,1) 随机数)、random.randint()(整数随机数)、random.randn()(标准正态分布)。
  • 数组属性

    • ndim:维度数量;shape:数组形状(n 行 m 列);size:元素总数;dtype:元素类型。
  • 常用操作

    • 切片与索引:类似 Python 列表,支持多维索引和省略号(...)。
    • 广播机制:不同形状数组运算时自动扩展维度,简化计算。

2. Matplotlib:数据可视化利器

Matplotlib 是 Python 绘图库,支持静态、动态及交互式图表,广泛用于数据可视化。

  • 安装与导入

    pip install matplotlib
    import matplotlib.pyplot as plt
    
  • 基础绘图

    • plot():绘制折线图,支持自定义标记(marker)、线型(linestyle)和颜色(color)。
    • scatter():散点图,可设置点大小(s)和颜色(c)。
    • bar()/barh():柱状图 / 水平柱状图。
    • pie():饼图,支持扇区分离(explode)和百分比显示(autopct)。
  • 图表美化

    • 标签与标题:xlabel()ylabel()title()
    • 网格线:grid(),可指定轴方向和样式。
    • 多图绘制:subplot(nrows, ncols, index) 分割画布。

3. Pandas:数据分析工具集

Pandas 基于 NumPy 构建,提供高效的 DataFrame 数据结构,适合处理结构化数据。

  • 安装与导入

    pip install pandas
    import pandas as pd
    
  • 核心数据结构

    • Series:一维带标签数组,包含索引(index)和值(values)。
    • DataFrame:二维表格结构,含行索引和列索引,支持异构数据。
  • 数据操作

    • 数据读取:read_csv()/read_excel()/read_sql() 读取文件或数据库。
    • 数据查询:loc[](标签索引)、iloc[](位置索引)。
    • 缺失值处理:dropna()(删除缺失值)、fillna()(填充缺失值)。
    • 聚合函数:mean()/median()/sum() 等统计计算。

4. Seaborn:统计可视化进阶

Seaborn 基于 Matplotlib,专注于统计图形,默认样式更美观,代码更简洁。

  • 安装与导入

    pip install seaborn
    import seaborn as sns
    sns.set_theme()  # 设置主题
    
  • 常用绘图函数

    • scatterplot():增强版散点图,支持分组显示。
    • lineplot():趋势线图,适合时间序列数据。
    • barplot()/boxplot():柱状图 / 箱线图,展示数据分布。
    • heatmap():热图,常用于相关性矩阵可视化。

二、数据库技术:MySQL

1. 基础概念

  • 数据库(DB):有组织的长期存储数据集合,本质是文件系统。
  • 数据库管理系统(DBMS):管理数据库的软件(如 MySQL、Oracle)。
  • 关系型数据库:以二维表(关系)存储数据,通过 SQL 操作。

2. MySQL 安装与配置

  • 下载地址:MySQL 官网
  • 环境配置:添加 MySQL 的 bin 目录到系统 PATH,验证安装:
    mysql -uroot -p  # 输入密码登录
    

3. SQL 核心语句

  • 数据定义语言(DDL)

    • CREATE DATABASE/TABLE:创建数据库 / 表。
    • ALTER TABLE:修改表结构(添加 / 删除列、修改类型)。
    • DROP DATABASE/TABLE:删除数据库 / 表。
  • 数据操纵语言(DML)

    • INSERT INTO:插入数据。
    • UPDATE/DELETE:更新 / 删除数据(需配合WHERE条件)。
  • 查询语句(SELECT)

    SELECT 列名 FROM 表名 
    WHERE 条件 
    GROUP BY 分组列 
    HAVING 分组条件 
    ORDER BY 排序列 [ASC/DESC]
    

三、爬虫技术与数据采集

1. Requests 库:网络请求工具

  • 核心功能:发送 HTTP 请求(GET/POST),处理会话和 Cookies。

  • 高级用法

    • 会话维持:requests.Session() 自动处理 Cookies。
    • 代理设置:通过proxies参数配置代理 IP。
    • 文件上传:files参数传递文件对象。
  • 示例:爬取网页

    import requests
    url = "https://example.com"
    response = requests.get(url)
    response.encoding = response.apparent_encoding  # 自动识别编码
    print(response.text)  # 输出网页内容
    

2. 解析技术

  • XPath:通过路径表达式定位 XML/HTML 元素,语法简洁。

    from lxml import etree
    html = etree.HTML(response.text)
    titles = html.xpath("//h1/text()")  # 提取所有h1标签文本
    
  • BeautifulSoup:解析 HTML/XML 的 Python 库,支持多种解析器。

    from bs4 import BeautifulSoup
    soup = BeautifulSoup(response.text, "lxml")
    links = [a["href"] for a in soup.select("a")]  # 提取所有链接
    

3. 数据存储

  • CSV 文件:纯文本表格格式,适合简单数据。

    import csv
    with open("data.csv", "w", newline="", encoding="utf-8") as f:writer = csv.writer(f)writer.writerow(["标题", "链接"])  # 写入表头writer.writerows(data_list)  # 写入多行数据
    
  • MySQL 数据库:通过pymysql库连接,适合结构化数据长期存储。

    import pymysql
    db = pymysql.connect(host="localhost", user="root", password="123456", db="spider")
    cursor = db.cursor()
    cursor.execute("INSERT INTO table VALUES (%s, %s)", (value1, value2))
    db.commit()  # 提交事务
    

四、Web 开发基础

1. HTML:网页骨架

  • 核心标签
    • 结构标签:<html>/<head>/<body>
    • 内容标签:<h1>-<h6>(标题)、<p>(段落)、<a>(链接)、<img>(图片)。
    • 表单标签:<form>/<input>/<select>,用于用户输入。

2. CSS:样式美化

  • 引入方式

    • 内联式:style属性直接写在标签内。
    • 嵌入式:<style>标签写在<head>中。
    • 外联式:通过<link>引入外部.css文件。
  • 选择器:标签选择器(p)、类选择器(.class)、ID 选择器(#id)。

3. JavaScript:交互逻辑

  • 基础语法
    • 变量定义:var(弱类型,可动态改变类型)。
    • 函数定义:function 函数名(参数) { ... }
    • 流程控制:if-elseforswitch等语句。
http://www.dtcms.com/a/328661.html

相关文章:

  • 基于机器学习的自动驾驶汽车新型失效运行方法
  • Win11和Mac设置环境变量
  • 【汽车标定数据】动态优先级线程池在异步多文件解析中的应用
  • 2022 年全国硕士研究生招生考试真题笔记
  • 深度学习赋能汽车制造缺陷检测
  • “我店模式”:零售转型中的场景化突围
  • 美团搜索推荐统一Agent之交互协议与多Agent协同
  • 【计算机网络 | 第6篇】计算机体系结构与参考模型
  • go学习笔记-匿名函数
  • 算法题笔记
  • Java连接MySQL数据库
  • Socket 套接字常用方法
  • Java多源AI接口融合框架:动态模型切换与智能路由实战
  • pybind11绑定C++项目心得
  • Sentinel 和 Hystrix
  • MySQL 存储过程终止执行的方法
  • 力扣热题100------279.完全平方数
  • XGBoost 的适用场景以及与 CNN、LSTM 的区别
  • AQS的原理与ReentrantLock的关系
  • 基于Rocky Linux 9的容器化部署方案,使用Alpine镜像实现轻量化
  • 企业高性能web服务器(3)
  • Linux学习-应用软件编程(文件IO)
  • 【科研绘图系列】R语言绘制特定区域颜色标记散点图
  • Pytest项目_day13(usefixture方法、params、ids)
  • 【不动依赖】Kali Linux 2025.2 中安装mongosh
  • 【数据结构】二叉树详细解析
  • 安路Anlogic FPGA下载器的驱动安装与测试教程
  • C++联合体的定义
  • 数据结构 二叉树(2)堆
  • 带宽受限信道下的数据传输速率计算:有噪声与无噪声场景