【深度学习_环境(二)】深度学习需要了解的python库
一 深度学习常用的37个Python库
(1)核心库与统计:Numpy、Scipy、Pandas、StatsModels。
(2)可视化:Matplotlib、Seaborn、Plotly、Bokeh、Pydot、Scikit-learn、XGBoost/LightGBM/CatBoost、Eli5。
(3)深度学习:Tensorflow、PyTorch、Keras、fastai、PyTorch Lightning、JAX、MXNet、Ignite。
(4)分布式深度学习:Dist-keras/elephas/spark-deep-learning。
(5)自然语言处理: FastText、NLTK、SpaCy、Gensim、Datasets、Tokenizers 、Transformers 、Stanza、TextBlob、PyTorch-NLP、 Textacy、 Finetune、TextHero、Spark NLP、GluonNLP。
(6)数据抓取:Scrapy。
(1)核心库与统计
1. Numpy
NumPy是一个Python包,它是Python科学计算的核心库之一。NumPy可以处理多维数组和矩阵,提供了很多数学函数以及线性代数、傅里叶变换等基础操作,是Python进行科学计算、数据分析和机器学习等任务的重要工具之一。
以下是NumPy的一些特点:
-
多维数组:NumPy提供了一个ndarray类,用于存储N维数组,也就是多维数组。这使得NumPy能够更高效地处理数值运算和数组操作。
-
数学和统计函数:NumPy提供了很多数学和统计函数,例如sin、cos、exp、log等,还包括各种聚合函数(如mean、sum、min、max等)和描述性统计函数(如方差、标准差等)等。
-
线性代数:NumPy提供了很多线性代数相关的函数,例如求解线性方程组、矩阵乘法、矩阵分解等。
-
随机数生成:NumPy还提供了很多随机数生成函数,例如按均匀分布、正态分布等生成随机数的函数,以及生成随机数组的函数。
-
支持向量化操作:NumPy支持向量化操作,即在数组上进行操作而不需要使用循环,这能够提高效率。
2. Scipy
SciPy是一个Python的开源科学计算库,主要用于科学、工程和技术计算。它建立在NumPy的基础上,提供了更多的数学、信号处理、优化、统计和图像处理等功能。
以下是SciPy的一些主要特点:
-
支持插值和拟合:SciPy提供了很多插值和拟合函数,例如多项式拟合、样条插值等。
-
信号处理:SciPy包含很多数字信号处理函数,例如傅里叶变换、滤波器设计和信号生成等。
-
最优化:SciPy可以进行各种非线性优化。例如,可以使用SciPy的非线性优化函数来最小化或最大化目标函数,并指定约束条件。
-
统计:SciPy提供了很多统计函数,例如概率分布函数、统计检验、回归分析等。
-
线性代数:SciPy可以进行各种线性代数操作,例如求解线性方程组、矩阵分解和求逆等。
-
图像处理:SciPy包含很多图像处理函数,例如图像滤波器、形态学操作、边缘检测和图像变换等。
3. Pandas
Pandas是一个基于NumPy的Python数据分析库,它提供了很多数据结构和数据分析工具,支持快速高效地处理大型数据集、读写各种数据格式文件和进行各种数据操作。
以下是Pandas的一些特点:
-
数据结构:Pandas提供了两种主要的数据结构,即Series和DataFrame。其中,Series是一维数组,类似于一个带标签的数组,而DataFrame则是二维表格数据结构,类似于一个电子表格或SQL数据库中的表。
-
处理缺失数据:Pandas支持自动推断缺失值,并提供了很多函数来处理缺失数据,包括删除、填充和插值等方法。
-
数据清洗:Pandas提供了很多函数来进行数据清洗,例如数据类型转换、重复值删除、数据整合、数据变形等方法。
-
数据选取:Pandas提供了多种方法来选取数据,包括标签选择、位置选择和条件选择等方法。
-
基本统计功能:Pandas提供了很多基本统计和描述性统计函数,例如平均值、标准差、方差和百分位数等。
-
数据可视化:Pandas提供了数据可视化工具,能够快速地生成图表,方便用户进行数据探索和结果展示。
(2)可视化
24. Pillow(https://github.com/python-pillow/Pillow)
星标:7800,提交数:10799,贡献者:303
Pillow是对用户十分友好的PIL分支。PIL是Python的图像库。
25. OpenCV(https://github.com/opencv/opencv)
星标:49600,提交数:29453,贡献者:1234
开源计算机视觉库。
26. scikit-image(https://github.com/scikit-image/scikit-image)
星标:4000,提交数:12352,贡献者:403
python中的图像处理。
27. Mahotas(https://github.com/luispedro/mahotas)
星标:644,提交数:1273,贡献者:25
Mahotas是个包含了最快的计算机视觉算法(所有算法用C++实现保证运行速度)的库,针对numpy数组运行。
28. Simple-CV(https://github.com/sightmachine/simplecv)
星标:2400,提交数:2625,贡献者:69
SimpleCV是一个开源机器视觉框架,使用OpenCV和Python编程语言。
29. GluonCV(https://github.com/dmlc/gluon-cv)
星标:4300,提交数:774,贡献者:101
GluonCV提供了计算机视觉中最先进(SOTA)深度学习模型的实现。
30. Torchvision(https://github.com/pytorch/vision)
星标:7500,提交数:1286,贡献者:334
torchvision包由流行的数据集、模型架构和用于计算机视觉中常见的图像转换方法组成。
(3)深度学习
1. TensorFlow(https://github.com/tensorflow/tensorflow)
星标:149000,提交数:97741,贡献者:2754
TensorFlow是一个用于机器学习的端到端的开源平台。它具备着全面综合的、灵活的工具、库和社区资源生态系统,可以帮助研究人员去推动机器学习先进的技术的发展,并让开发人员可以轻松地构建和部署基于机器学习的应用程序。
2. Keras(https://github.com/keras-team/keras)
星标:50000,提交数:5349,贡献者:864
Keras是一个用Python编写的深度学习API,其运行于机器学习的顶级平台TensorFlow之上。
3. PyTorch(https://github.com/pytorch/pytorch)
星标:43200,提交数:30696,贡献者:1619
具有强大GPU加速,和使用Python实现的张量和动态神经网络。
4. fastai(https://github.com/fastai/fastai)
星标:19800,提交数:1450,贡献者:607
通过利用当下最佳的技术实践,fastai极快地简化了训练过程,并加速了神经网络。
5. PyTorch Lightning(https://github.com/PyTorchLightning/pytorch-lightning)
星标:9600,提交数:3594,贡献者:317
针对于高性能人工智能研究的封装轻量级PyTorch。可以缩小你的模型,而不是提供小的样板。
6. JAX(https://github.com/google/jax)
星标:10000,提交数:5708,贡献者:221
Python+NumPy程序的可组合转换:区分,向量化,在GPU/TPU上的JIT,等等。
7. MXNet(https://github.com/apache/incubator-mxnet)
星标:19100,提交数:11387,贡献者:839
带有动态和突变感知的数据流管理调度程序的轻量、便捷、灵活的分布式/移动机器学习库:支持Python、R、Julia、Scala、Go、JavaScript等等。
8. Ignite(https://github.com/pytorch/ignite)
星标:3100,提交数:747,贡献者:112
高级库,可以帮助培训和评估神经网络在PyTorch中实现灵活和透明的使用。
(5)自然语言处理
9. FastText(https://github.com/facebookresearch/fastText)
星标:21700,提交数:379,贡献者:47
fastText是一个可以用来高效学习单词表意和句子分类的库。
10. spaCy(https://github.com/explosion/spaCy)
星标:17400,提交数:11628,贡献者 482
用来实现工业级自然语言处理(NLP),通过使用Python和Cython。
11. gensim(https://github.com/RaRe-Technologies/gensim)
星标:11200,提交数:4024,贡献者:361
Gensim是一个Python库,用于主题建模、文档索引和相似度检索,具有大型语料库。目标受众是自然语言处理(NLP)和信息检索(IR)社区。
12. NLTK(https://github.com/nltk/nltk)
星标:9300,提交数:13990,贡献者:319
NLTK——自然语言工具箱——是一套开源Python模块、数据集和教程,用于针对支持自然语言处理方面的研究和开发。
13. Datasets (Huggingface)(https://github.com/huggingface/datasets)
星标:4300,提交数: 568,贡献者:64
用于自然语言处理的,使用PyTorch, TensorFlow, NumPy和Pandas的工具,具有快速,高效,开放访问的数据集和自然语言处理评估指标。
14. Tokenizers (Huggingface)(https://github.com/huggingface/tokenizers)
星标:3800,提交数:1252,贡献者:30
为研究和生产优化的快速、顶级的分词器。
15. Transformers (Huggingface)(https://github.com/huggingface/transformers)
星标:3500,提交数:5480,贡献者:585
transformer:针对 Pytorch和TensorFlow 2.0的最顶级的自然语言处理库。
16. Stanza(https://github.com/stanfordnlp/stanza/)
星标:4800,提交数:1514,贡献者:19
针对许多人类语言的正式标准NLP Python库。
17. TextBlob(https://github.com/sloria/textblob)
星标:7300,提交数:542,贡献者:24
简单、python风格、文本处理——情感分析、词性标记、名词短语提取、翻译等等。
18. PyTorch-NLP(https://github.com/PetrochukM/PyTorch-NLP)
星标:1800,提交数:442,贡献者:15
PyTorch自然语言处理(NLP)的基本工具。
19. Textacy(https://github.com/chartbeat-labs/textacy)
星标:1500,提交数:1324,贡献者:23
一个Python库,用于执行各种自然语言处理(NLP)任务,构建在一个高性能spaCy库之上。
20. Finetune(https://github.com/IndicoDataSolutions/finetune)
星标:626,提交数:1405,贡献者:13
Finetune是一个库,它允许用户利用最先进的预训练的NLP模型来执行广泛的下游任务。
21. TextHero(https://github.com/jbesomi/texthero)
星标:1900,提交数:266,贡献者:17
文本预处理,表示和可视化,从零到精通。
22. Spark NLP(https://github.com/JohnSnowLabs/spark-nlp)
星标:1700,提交数:4363,贡献者:50
Spark NLP是一个构建在Apache Spark ML之上的自然语言处理库。
23. GluonNLP(https://github.com/dmlc/gluon-nlp)
星标:2200,提交数:712,贡献者:72
GluonNLP是一个工具包,它支持简单的文本预处理、数据集加载和神经模型构建,以帮助您加快自然语言处理(NLP)研究。
其他一些库
1 joblib 库【link】
- 函数的透明磁盘缓存和延迟重新计算 (记忆模式)
- 简单并行计算
Joblib 经过了优化,特别是在处理大型数据时速度更快、更健壮,并且对 numpy 数组进行了特定的优化。
2 tqdm【link】
tqdm是一个进度条可视化库,可以帮助我们监测程序运行的进度,估计运行的时长,甚至可以协助debug。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具