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

python中数据处理库,机器学习库以及自动化与爬虫

Python 在数据处理、机器学习和自动化任务方面非常强大,它的库生态系统几乎涵盖了所有相关领域。我们将从以下几个部分来介绍 Python 中最常用的库:

  1. 数据处理库:Pandas、NumPy 等
  2. 机器学习库:Scikit-learn、TensorFlow、Keras 等
  3. 自动化与爬虫:Selenium、Requests、BeautifulSoup、Scrapy 等

一、Python 中的数据处理库

1.1 Pandas

Pandas 是 Python 最流行的数据处理库之一,专门用于处理结构化数据(如表格、CSV 文件等)。它引入了两种主要的数据结构:SeriesDataFrame,可以高效地进行数据操作。

Pandas 基本用法
  • 安装 Pandas

    pip install pandas
    
  • 创建 DataFrame

    import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35],'Salary': [50000, 60000, 70000]}df = pd.DataFrame(data)
    print(df)
    
  • 读取和写入 CSV 文件

    # 读取 CSV 文件
    df = pd.read_csv('data.csv')# 写入 CSV 文件
    df.to_csv('output.csv', index=False)
    
  • 常见数据操作

    # 查看前几行数据
    print(df.head())# 过滤数据
    df_filtered = df[df['Age'] > 30]# 添加新列
    df['Bonus'] = df['Salary'] * 0.1# 分组并聚合
    grouped = df.groupby('Age').mean()# 缺失值处理
    df.fillna(0, inplace=True)  # 用 0 填充缺失值
    

1.2 NumPy

NumPy 是 Python 的数值计算库,专门用于处理大规模的数组和矩阵运算。Pandas 底层数据结构基于 NumPy。

NumPy 基本用法
  • 安装 NumPy

    pip install numpy
    
  • 创建数组

    import numpy as np# 创建一维数组
    arr = np.array([1, 2, 3])# 创建二维数组
    matrix = np.array([[1, 2], [3, 4]])
    
  • 数组运算

    # 数组元素相加
    arr_sum = arr + 2# 矩阵乘法
    mat_mul = np.dot(matrix, matrix)
    
  • 数组统计

    # 求和
    total = np.sum(arr)# 均值
    mean = np.mean(arr)# 标准差
    std_dev = np.std(arr)
    

1.3 数据可视化库:Matplotlib 与 Seaborn

Matplotlib 是一个基础的数据可视化库,Seaborn 则是在 Matplotlib 之上构建的更高级别的库,提供了更简洁美观的绘图接口。

  • 安装 Matplotlib 和 Seaborn
    pip install matplotlib seaborn
    
Matplotlib 示例
import matplotlib.pyplot as plt# 生成简单的折线图
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]plt.plot(x, y)
plt.xlabel('X axis')
plt.ylabel('Y axis')
plt.title('Simple Line Plot')
plt.show()
Seaborn 示例
import seaborn as sns# 加载示例数据集
tips = sns.load_dataset("tips")# 生成一个散点图
sns.scatterplot(x="total_bill", y="tip", data=tips)
plt.show()

二、Python 中的机器学习库

2.1 Scikit-learn

Scikit-learn 是一个功能强大的机器学习库,包含了经典的机器学习算法、数据预处理工具和模型评估功能。它特别适合用来构建和训练传统机器学习模型,如回归、分类、聚类等。

  • 安装 Scikit-learn
    pip install scikit-learn
    
Scikit-learn 基本用法
  • 加载数据集

    from sklearn.datasets import load_irisiris = load_iris()
    X = iris.data
    y = iris.target
    
  • 训练模型

    from sklearn.model_selection import train_test_split
    from sklearn.ensemble import RandomForestClassifier# 分割数据集
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)# 创建模型并训练
    clf = RandomForestClassifier()
    clf.fit(X_train, y_train)# 预测
    y_pred = clf.predict(X_test)
    
  • 评估模型

    from sklearn.metrics import accuracy_scoreaccuracy = accuracy_score(y_test, y_pred)
    print(f"Accuracy: {accuracy}")
    

2.2 TensorFlow 和 Keras

TensorFlow 是一个流行的开源深度学习框架,Keras 是一个基于 TensorFlow 的高级神经网络库,提供了更加简洁的 API。它们被广泛用于构建和训练深度神经网络模型。

  • 安装 TensorFlow 和 Keras
    pip install tensorflow
    
TensorFlow/Keras 基本用法
  • 构建简单的神经网络模型
    import tensorflow as tf
    from tensorflow.keras import layers# 构建模型
    model = tf.keras.Sequential([layers.Dense(64, activation='relu', input_shape=(4,)),layers.Dense(64, activation='relu'),layers.Dense(3, activation='softmax')
    ])# 编译模型
    model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])# 训练模型
    model.fit(X_train, y_train, epochs=10)# 评估模型
    loss, accuracy = model.evaluate(X_test, y_test)
    print(f"Test accuracy: {accuracy}")
    

2.3 PyTorch

PyTorch 是另一个流行的深度学习框架,因其动态计算图和灵活性而受到研究人员的青睐。

  • 安装 PyTorch
    pip install torch
    
PyTorch 示例
import torch
import torch.nn as nn
import torch.optim as optim# 构建一个简单的线性模型
class SimpleModel(nn.Module):def __init__(self):super(SimpleModel, self).__init__()self.linear = nn.Linear(1, 1)def forward(self, x):return self.linear(x)# 初始化模型、损失函数和优化器
model = SimpleModel()
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)# 训练模型(假设你有数据 X 和 y)
for epoch in range(100):optimizer.zero_grad()outputs = model(torch.tensor([[1.0]]))  # 输入为 1loss = criterion(outputs, torch.tensor([[2.0]]))  # 期望输出为 2loss.backward()optimizer.step()print("模型训练完成")

三、自动化与爬虫

3.1 自动化工具

Selenium

Selenium 是一个自动化 Web 浏览器的工具,广泛用于自动化测试和 Web 爬虫。

  • 安装 Selenium

    pip install selenium
    
  • 使用 Selenium 自动化浏览器操作

    from selenium import webdriver# 启动浏览器
    driver = webdriver.Chrome()# 打开网页
    driver.get("https://www.example.com")# 查找元素并进行操作
    element = driver.find_element_by_name("q")
    element.send_keys("Selenium")
    element.submit()# 关闭浏览器
    driver.quit()
    

3.2 网络请求库:Requests

Requests 是一个简单且功能强大的 HTTP 请求库,适合进行 API 请求和基本的 Web 爬取任务。

  • 安装 Requests

    pip install requests
    
  • 发送 HTTP 请求

    import requests# 发送 GET 请求
    response = requests.get('https://api.example.com/data')# 解析 JSON 数据
    data = response.json()
    print(data)
    

3.3 BeautifulSoup

**Beautiful

Soup** 是一个用于解析 HTML 和 XML 的库,通常与 Requests 搭配使用,适合抓取网页数据。

  • 安装 BeautifulSoup

    pip install beautifulsoup4
    
  • 解析网页并提取数据

    from bs4 import BeautifulSoup
    import requests# 发送请求
    response = requests.get('https://example.com')# 解析 HTML
    soup = BeautifulSoup(response.content, 'html.parser')# 提取标题
    title = soup.title.string
    print(f"页面标题: {title}")
    

3.4 Scrapy

Scrapy 是一个用于构建强大 Web 爬虫的框架,适合大规模数据抓取任务。

  • 安装 Scrapy

    pip install scrapy
    
  • Scrapy 基本示例

    scrapy startproject myspider
    

    进入项目目录后,编辑 spiders 目录中的爬虫脚本。

    import scrapyclass QuotesSpider(scrapy.Spider):name = "quotes"start_urls = ['http://quotes.toscrape.com/']def parse(self, response):for quote in response.css('div.quote'):yield {'text': quote.css('span.text::text').get(),'author': quote.css('small.author::text').get(),}next_page = response.css('li.next a::attr(href)').get()if next_page is not None:yield response.follow(next_page, self.parse)
    
    • 运行爬虫
      scrapy crawl quotes
      

总结

Python 拥有强大的库生态,涵盖了数据处理、机器学习、自动化以及 Web 爬虫等多个领域。你可以通过 Pandas 和 NumPy 高效处理数据,用 Scikit-learn 和 TensorFlow 构建机器学习模型,并通过 Selenium 和 Requests 等库实现 Web 自动化和爬虫任务。结合这些工具,可以轻松完成从数据采集到分析、建模和自动化的全流程。

如果你想进一步探索这些库,可以尝试更多实战项目,并结合具体的需求来选择合适的工具。

相关文章:

python中数据处理库,机器学习库以及自动化与爬虫

Python 在数据处理、机器学习和自动化任务方面非常强大,它的库生态系统几乎涵盖了所有相关领域。我们将从以下几个部分来介绍 Python 中最常用的库: 数据处理库:Pandas、NumPy 等机器学习库:Scikit-learn、TensorFlow、Keras 等自…...

2024最新测评:低代码平台在企业复杂应用场景的适用性如何?

低代码平台种类多,不好一概而论。但最近有做部分低代码平台的测评,供大家参考。 一个月前接到老板紧急任务:调研有没有一款低代码平台能开发我司的软件场景。我司是一家快速发展中的制造业企业,业务遍布全国,需要一个…...

URL中 / 作为字符串,而不是路径。

在Harbor中,仓库路径是二级,有时候在打镜像的时候,会把 / 作为字符串打进去,URL访问的时候有可能就当路径了。 解决办法:/ 转义 %252F...

el-input只能输入指定范围的数字

el-input只能输入指定范围的数字 需求:el-input只能输入指定范围的数字,不采用el-input-number组件。 几个关键点如下 v-model.numbertype"number"min"1" max"999999" 数字的范围 οninput"validity.valid ||(value…...

数据结构编程实践20讲(Python版)—01数组

本文目录 01 数组 arrayS1 说明S2 举例S3 问题:二维网格中的最小路径求解思路Python3程序 S4 问题:图像左右变换求解思路Python3程序 S5 问题:青蛙过河求解思路Python3程序 写在前面 数据结构是计算机科学中的一个重要概念,用于组…...

数据库实验2—1

10-1 查询重量在[40,65]之间的产品信息 本题目要求编写SQL语句&#xff0c; 检索出product表中所有符合40 < Weight < 65的记录。 提示&#xff1a;请使用SELECT语句作答。 表结构: CREATE TABLE product (Pid varchar(20), --商品编号PName varchar(50), --商品名称…...

现代前端框架实战指南:React、Vue.js、Angular核心概念与应用

随着互联网技术的发展&#xff0c;前端开发变得越来越复杂。 为了应对这些挑战&#xff0c;前端框架应运而生&#xff0c;它们提供了丰富的功能和工具&#xff0c;帮助开发者更高效地构建 和维护大型前端应用。前端框架是现代Web开发中不可或缺的一部分&#xff0c;它们提供了…...

MySQL --用户管理

文章目录 1.用户1.1用户信息1.2创建用户1.3删除用户1.4修改用户密码 2.数据库的权限2.1给用户授权2.2回收权限 如果我们只能使用root用户&#xff0c;这样存在安全隐患。这时&#xff0c;就需要使用MySQL的用户管理。 1.用户 1.1用户信息 MySQL中的用户&#xff0c;都存储在系…...

详解前驱图与PV操作

前驱图、PV操作 前驱图与PV操作的结合例子&#xff1a;两个进程的同步问题使用PV操作实现同步 前驱图的实际应用更复杂的场景示例示例1&#xff1a;前驱图与PV操作的结合1. 前驱图表示2. 使用信号量&#xff08;PV操作&#xff09;实现同步进程的执行逻辑&#xff1a; 3. 示例代…...

孩子来加拿大上学真的那么轻松吗?(上)

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 卷圈 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦Midjourney 产品统筹 / bobo 这是拼娃时代第三十一期节目&#xff0c;经过了一年的沉寂&#xff0c;拼娃时代在今年九月份终于恢复更新啦&#xff0c;JunJun老师也…...

【算法篇】二叉树类(1)(笔记)

目录 一、认识二叉树 1. 二叉树的种类 &#xff08;1&#xff09;满二叉树 &#xff08;2&#xff09;完全二叉树 &#xff08;3&#xff09;二叉搜索树 &#xff08;4&#xff09;平衡二叉搜索树 2. 二叉树的存储方式 3. 二叉树的遍历方式 4. 二叉树的定义 二、Leet…...

《C++无锁编程:解锁高性能并发的新境界》

在当今的软件开发领域&#xff0c;并发编程的重要性日益凸显。随着多核处理器的普及&#xff0c;开发者们越来越需要利用并发来提高程序的性能和响应速度。而 C作为一种强大的编程语言&#xff0c;提供了多种技术来实现无锁编程&#xff0c;从而在并发环境下获得更高的性能和更…...

系统架构设计师教程 第9章 9.5 软件可靠性测试 笔记

9.5 软件可靠性测试 ★★★☆☆ 9.5.1 软件可靠性测试概述 软件测试者可以使用很多方法进行软件测试&#xff0c;如按行为或结构来划分输入域的划分测试&#xff0c; 纯粹随机选择输入的随机测试&#xff0c;基于功能、路径、数据流或控制流的覆盖测试等。 软件可靠性测试由可…...

如何使用ssm实现校园体育赛事管理系统的设计与实现+vue

TOC ssm713校园体育赛事管理系统的设计与实现vue 绪论 课题背景 身处网络时代&#xff0c;随着网络系统体系发展的不断成熟和完善&#xff0c;人们的生活也随之发生了很大的变化。目前&#xff0c;人们在追求较高物质生活的同时&#xff0c;也在想着如何使自身的精神内涵得…...

CSS 中的文本相关属性(line - height、font、letter - 属性、text - 属性)

目录 非 VIP 用户可前往公众号回复“css”进行免费阅读 line - height属性 字号与行高的取值约定 行高与盒子高度的关系 font、letter -属性 、text -属性 font属性 letter -属性 text - 属性 非 VIP 用户可前往公众号回复“css”进行免费阅读 line - height属性 字号与…...

mobaxterm、vscode通过跳板机连接服务器

目标服务器&#xff1a;111.111.11.11 跳板机&#xff1a;100.100.10.10 1. mobaxterm通过跳板机连接服务器 1.1 目标服务器信息 1.2 跳板机信息 1.3 登录 点击登录&#xff0c;会输入密码&#xff0c;成功 参考&#xff1a;https://blog.csdn.net/qq_40636486/article/det…...

鸿萌数据恢复:iPhone 手机被盗后应采取哪些措施?警惕这些骗局

天津鸿萌科贸发展有限公司从事数据安全服务二十余年&#xff0c;致力于为各领域客户提供专业的数据恢复、数据备份解决方案与服务&#xff0c;并针对企业面临的数据安全风险&#xff0c;提供专业的相关数据安全培训。 丢失昂贵的 iPhone 不仅会造成较大的经济损失&#xff0c;还…...

为了学习Python熬夜部署了Jupyter Notebook 6.x

文章目录 Docker拉取并构建容器安装部署jupyter对Jupyter使用过程问题总结1 没有代码提示怎么办&#xff1f;2 如果想切换python版本了怎么办&#xff1f;3 想在jupyter里面使用vim怎么办&#xff1f; 遇见的问题参考文章 怎么说&#xff0c;今天在学习Python的时候&#xff0c…...

docker-文件复制(docker cp:用于在Docker主机和容器之间拷贝文件或目录)

文章目录 1、把宿主机的文件复制到容器内部1.1、查询 宿主机 root 下的文件1.2、docker cp /root/anaconda-ks.cfg spzx-redis:/root1.3、查看 spzx-redis 容器 中/root目录下是否有 anaconda-ks.cfg 文件 2、把容器中的文件 复制 到宿主机中2.1、查看 spzx-redis 容器 / 下的文…...

guava里常用功能

guava 是 Google 提供的一个 Java 库&#xff0c;提供了很多实用的工具类和方法&#xff0c;可以帮助开发者更高效地编写代码。以下是一些常用的 Guava 工具类及其功能示例&#xff1a; 1. Lists 用于操作列表的工具类。 import com.google.common.collect.Lists;List<In…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...