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

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

一、数据科学基础库

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.pswp.cn/web/93334.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93334.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习嵌入式之硬件——I2C

一、I2C1.定义内部集成电路的简称&#xff0c;半双工串行同步通信&#xff0c;是芯片和芯片之间的通信方式&#xff1b;通常只有一个主机&#xff0c;多个从机&#xff0c;采用主从应答的方式上图所示是IIC的总线的使用场景&#xff0c;所有挂载在IIC总线上的设备都有两根信号线…

使用websockt

封装websocktHooksimport { ref, onMounted, onUnmounted } from vue;/*** webSocket的Hooks* param {string} websocket链接地址* */ export function useWebSocket(url: string) {// 核心状态 const data: Ref<any> ref(null);//收到websocket返回的数据const socke…

Jmeter自定义脚本

目录 log&#xff1a;输出类 Label&#xff1a;你自定义的组件的名称 FileName&#xff1a;添加的脚本文件的文件名 Parameters&#xff1a;你传入的参数&#xff0c;是一个字符串 args&#xff1a;你传入的参数&#xff0c;是一个数组 Parameters和args的异同&#xff1…

飞算 JavaAI 电商零售场景实践:从订单峰值到供应链协同的全链路技术革新

目录 一、电商核心场景的技术攻坚 1.1 分布式订单系统的事务一致性设计 1.1.1 TCC 模式下的订单创建流程 1.1.2 订单状态机的可靠流转 1.2 高并发秒杀系统的架构设计 1.2.1 多级限流与流量削峰 1.2.2 库存防超卖机制 1.3 智能推荐与用户行为分析 1.3.1 用户行为实时采…

51单片机-51单片机介绍

51单片机介绍单片机简介什么是单片机呢&#xff1f;单片机是一种集成电路芯片&#xff0c;采用超大规模集成电路技术将中央处理器&#xff08;CPU&#xff09;、随机存储器&#xff08;RAM&#xff09;、只读存储器&#xff08;ROM&#xff09;、多种I/O口、中断系统、定时器/计…

8月AI面试工具测评:破解规模化招聘难题

金秋校招临近&#xff0c;企业面临“百万简历涌入VS面试官团队告急”的典型困境。传统线下面试效率低下、标准参差&#xff0c;难以应对短时间内爆发式的人才筛选需求。AI面试工具凭借自动化与智能化特性成为破局关键&#xff0c;但市面上产品良莠不齐——究竟哪款能兼顾效率与…

Debian新一代的APT软件源配置文件格式DEB822详解

Debian 的 DEB822 格式详解&#xff1a;新一代 APT 源配置 DEB822 是一种基于 RFC 822 数据格式的配置文件语法&#xff0c;Debian 新一代的 APT 软件源配置文件格式就采用了 DEB822。DEB822 格式从 Debian 11 (Bullseye) 开始被引入&#xff0c;并在 Debian 12 (Bookworm) 中成…

实战 AI8051U 音视频播放:USART-SPI→DMA-P2P→SPI+I2S 例程详解

视频P2P播放&#xff0c;时间计算&#xff1a;fps20,50ms 周期刷屏时间&#xff1a;160*80 一帧刷屏时间28.2ms帧间隔&#xff1a;50ms-28.2ms21.8ms音频双缓冲区交叉播放&#xff0c;利用视频播放帧间隔加载下一个缓冲区音频数据&#xff0c;时间计算&#xff1a;16000采样率 …

解释器模式C++

解释器模式&#xff08;Interpreter Pattern&#xff09;是一种行为型设计模式&#xff0c;它用于定义一种语言的语法规则&#xff0c;并构建一个解释器来解释该语言中的句子。这种模式适用于需要处理固定语法规则的场景&#xff0c;如表达式解析、配置文件解析等。 解释器模式…

debian 13 显示中文字体 不再显示菱形块 终端显示中文

找了很多坑。。其它就安装一下中文字体即可 。 apt install ttf-wqy-zenhei 之后测试命令 fc-list &#xff1a;langzh 显示了刚字体的路径和中文字即成功了。 rootdebian:~# dpkg-reconfigure locales 以上命令配置中文语言。 debian 12.11 安装 MySQL 下载配置文件 &am…

51单片机-驱动蜂鸣器模块教程

本章概述思维导图&#xff1a; 51单片机驱动蜂鸣器模块教程 蜂鸣器简介 蜂鸣器是一种将电信号转换为声音信号的电子元件&#xff0c;广泛应用于报警、提示、通知等场景。其核心原理基于压电效应或电磁感应&#xff1a;因此可分为两种类型蜂鸣器&#xff1a;压电式蜂鸣器和电磁…

常用Linux指令:Java/MySQL/Tomcat/Redis/Nginx运维指南

一、基础Linux指令1. 文件与目录操作ls -lh # 查看文件详情(人类可读格式) pwd # 显示当前目录路径 cd /path # 切换目录 mkdir dirname # 创建目录 rm -rf dirname # 强制删除目录 cp -r src dest # 递归复制目录 mv old new # 移动/重命…

小红书帖子评论的nodejs爬虫脚本

从小红书上爬取评论&#xff0c;但是目前还不能完全爬取子评论&#xff0c;使用GPT没能解决这个问题。后续博主可能会改进。或者如果你懂的话&#xff0c;可以在博主代码基础上改进。需要安装nodejs软件&#xff0c;部署环境变量。博主是在pycharm中运行的。代码无套路获取。自…

【iOS】多线程原理

目录 前言 基本概念及原理 线程、进程与队列 线程的定义&#xff1a; 进程的定义&#xff1a; 线程与进程之间的联系与区别&#xff1a; 线程和runloop的关系 影响任务执行速度的因素 多线程 多线程生命周期 线程池的原理 iOS中多线程的实现方式 线程安全问题 互斥…

药房发药的“时间密码”:同步时钟用药安全?

在医院的药房里&#xff0c;每一粒药片的流转都暗藏“时间密码”。从药品入库到患者服药&#xff0c;时间记录的精确性直接关乎生命安全。一旦时间数据出现偏差&#xff0c;轻则导致用药争议&#xff0c;重则引发医疗事故。近年来&#xff0c;随着医疗数字化进程加速&#xff0…

UI-TARS-Desktop 深度解析:下一代智能自动化桌面平台

目录 1. 产品概述 2. 核心功能与技术架构 2.1 关键技术 2.2 功能亮点 3. 竞品对比分析 4. 部署与成本分析 4.1 部署方案 4.2 隐性成本 5. 商业化前景 5.1 目标市场 5.2 盈利模式 5.3 风险挑战 6. 未来演进方向 7. 总结 1. 产品概述 UI-TARS-Desktop 是一款基于A…

STM32L051同时处理Alarm A和Alarm B中断

同时处理Alarm A和Alarm B中断 当同时启用Alarm A和Alarm B时&#xff0c;需要在中断处理程序中准确判断是哪个闹钟触发了中断。以下是完整的解决方案&#xff1a; 中断判断与处理流程 1. 在RTC中断服务程序中判断中断源 // stm32l0xx_it.c void RTC_IRQHandler(void) {/* USER…

OpenCV---morphologyEx形态学操作

在计算机视觉与图像处理领域&#xff0c;形态学操作是一种基于图像形状的非线性处理方法&#xff0c;广泛应用于噪声去除、边缘检测、目标分割等任务。OpenCV提供的morphologyEx函数是形态学操作的“瑞士军刀”&#xff0c;它整合了多种高级形态学运算&#xff0c;能够实现开运…

RuoYi-Cloud 接入 Sentinel 的 3 种限流方式

场景&#xff1a; 服务&#xff1a;ruoyi-robot&#xff08;对外接口统一在 /external/gs/**&#xff09; 网关&#xff1a;ruoyi-gateway&#xff08;转发到 ruoyi-robot&#xff09; 注册/配置&#xff1a;Nacos 流控&#xff1a;Sentinel 1.8.x 控制台 Dashboard&#x…

快速搭建python HTTP Server测试环境

这里用python http.server搭建一个api测试环境&#xff0c;自定义请求处理程序&#xff0c;以模拟不同api相应。 1 服务代码 /api/data&#xff0c;端口8000&#xff0c;GET 返回json数据为"{"message": "This is a sample API response"}" 代…