Python 基础教程

Python 高级教程

Python 相关应用

Python 笔记

Python FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/python-data-science.html

Python 数据科学


数据科学是通过组织,处理和分析数据从大量不同的数据中获取知识和洞察力的过程。它涉及许多不同的学科,如数学和统计建模,从数据源提取数据和应用数据可视化技术。通常还涉及处理大数据技术以收集结构化和非结构化数据。

应用场景

下面我们将看到一些使用数据科学的示例场景。

推荐系统

随着网上购物越来越普遍,电子商务平台能够捕捉用户购物偏好以及市场上各种产品的表现。这可以通过创建推荐系统实现,该系统创建预测购物者需求的模型并显示购物者最有可能购买的产品。

金融风险管理

通过使用过去的消费习惯,过去的违约,其他财务承诺和许多社会经济指标,可以更好地分析涉及贷款和信贷的金融风险。这些数据以不同格式从各种来源收集。将他们组织在一起并深入了解客户概况需要数据科学的帮助。其结果是通过避免坏账将金融机构的损失降到最低。

改善保健服务

医疗保健行业处理各种数据,这些数据可以分为技术数据,财务数据,患者信息,药物信息和法律规则。所有这些数据需要以协调一致的方式进行分析,以产生见解,同时保持医疗服务提供者和受护理者的成本,同时保持合法合规。

计算机视觉

计算机识别图像的进步涉及处理来自同一类别的多个对象的大量图像数据集。例如,脸部识别。对这些数据集进行建模,并创建算法将模型应用于较新的图像以获得令人满意的结果。处理这些庞大的数据集和创建模型需要数据科学中使用的各种工具。

有效的能源管理

随着能源消费需求的增长,能源生产企业需要更有效地管理能源生产和配送的各个阶段。这包括优化生产方法,储存和分配机制以及研究客户消费模式。链接来自所有这些来源的数据并获得洞察力似乎是一项艰巨的任务。通过使用数据科学工具使这变得更容易。

数据科学中的 Python

数据科学的编程需要非常灵活而灵活的语言,编写代码很简单,但可以处理高度复杂的数学处理。 Python 最适合这样的需求,因为它已经将自己建立为一般计算和科学计算的语言。更重要的是,它正在不断升级,以针对不同编程要求的其众多库的新增加形式。下面我们将讨论 python 的这些特性,使其成为数据科学的首选语言。

  • 一种简单易学的语言,与 R 等其他类似语言相比,可以实现更少的代码行。它的简单性还使得它能够以最少的代码处理复杂的场景,并且对程序的一般流程的混淆更少。
  • 它是跨平台的,因此相同的代码可以在多个环境中工作而无需任何更改。这使得它很容易用于多环境设置。
  • 它比其他用于数据分析的类似语言(如 R 和 MATLAB)执行得更快。
  • 它有出色的内存管理功能,特别是垃圾回收功能使其能够在管理大量数据转换,切片,切割和可视化时进行多功能管理。
  • 最重要的是,Python 获得了非常大量的库,这些库可以作为特殊用途的分析工具。例如,NumPy 软件包处理科学计算,其数组需要的内存比传统的 Python 列表少得多,用于管理数字数据。而且这类软件包的数量还在不断增长。
  • Python 具有可以直接使用其他语言(如 Java 或 C)的代码的包。这有助于通过使用其他语言的现有代码来优化代码性能,只要它提供了更好的结果。

Python 在解决数据科学任务和挑战方面继续处于领先地位。以下列出了Python 在解决数据科学任务中常用的一些库。

核心库和统计数据

NumPy

NumPy 是科学应用程序库的主要软件包之一,用于处理大型多维数组和矩阵,它大量的高级数学函数集合和实现方法使得这些对象执行操作成为可能。详细的 NumPy 相关内容,请参见 NumPy 教程

官网地址:http://www.numpy.org/

SciPy

科学计算的另一个核心库是 SciPy。它基于 NumPy,其功能也因此得到了扩展。SciPy 主数据结构又是一个多维数组,由 Numpy 实现。这个软件包包含了帮助解决线性代数、概率论、积分计算和许多其他任务的工具。此外,SciPy 还封装了许多新的 BLAS 和 LAPACK 函数。详细的 SciPy 相关内容,请参见 SciPy 教程

官网地址:https://www.scipy.org/

pandas

pandas 是一个 Python 库,提供高级的数据结构和各种各样的分析工具。这个软件包的主要特点是能够将相当复杂的数据操作转换为一两个命令。pandas 包含许多用于分组、过滤和组合数据的内置方法,以及时间序列功能。详细的 pandas 相关内容,请参见 pandas 教程

官网地址:https://pandas.pydata.org/

Statsmodels

Statsmodels 是 Python 中一个强大的统计分析包,包含了回归分析、时间序列分析、假设检 验等等的功能。

官网地址:https://www.statsmodels.org/

可视化

Matplotlib

Matplotlib 是一个用于创建二维图和图形的底层库。藉由它的帮助,你可以构建各种不同的图表,从直方图和散点图到费笛卡尔坐标图。此外,有许多流行的绘图库被设计为与 matplotlib 结合使用。

官网地址:https://matplotlib.org/

Seaborn

Seaborn 本质上是一个基于 matplotlib 库的高级 API。它包含更适合处理图表的默认设置。此外,还有丰富的可视化库,包括一些复杂类型,如时间序列、联合分布图(jointplots)和小提琴图(violin diagrams)。

官网地址:https://seaborn.pydata.org/

Plotly

Plotly 是一个流行的库,它可以让你轻松构建复杂的图形。该软件包适用于交互式 Web 应用程,可实现轮廓图、三元图和三维图等视觉效果。

官网地址:https://plot.ly/python/

Bokeh

Bokeh 库使用 JavaScript 小部件在浏览器中创建交互式和可缩放的可视化。该库提供了多种图表集合,样式可能性(styling possibilities),链接图、添加小部件和定义回调等形式的交互能力,以及许多更有用的特性。

官网地址:https://bokeh.pydata.org/

Pydot

Pydot 是一个用于生成复杂的定向图和无向图的库。它是用纯 Python 编写的 Graphviz 接口。在它的帮助下,可以显示图形的结构,这在构建神经网络和基于决策树的算法时经常用到。

官网地址:https://pypi.org/project/pydot/

机器学习

scikit-learn

这个基于 NumPy 和 SciPy 的 Python 模块是处理数据的最佳库之一。它为许多标准的机器学习和数据挖掘任务提供算法,如聚类、回归、分类、降维和模型选择。详细的 scikit-learn 相关内容,请参见 sklearn 教程

官网地址:https://scikit-learn.org/

XGBoost

XGBoost 是一个开源软件库,它提供了一个梯度提升框架,它的目的在于提供一个可扩展的、便携式和可分布的梯度提升(GBM,GBRT,GBDT)库。

官网地址:https://xgboost.readthedocs.io/

LightGBM

LightGBM 是一种使用基于树的学习算法的梯度提升框架。它具有分布式和更快的训练速度。

官网地址:https://lightgbm.readthedocs.io/

CatBoost

CatBoost(categorical boosting)是一种能够很好地处理类别型特征的梯度提升算法库。该库中的学习算法基于 GPU 实现,打分算法基于 CPU 实现。

官网地址:https://catboost.ai/

Eli5

通常情况下,机器学习模型预测的结果并不完全清楚,这正是 Eli5 帮助应对的挑战。它是一个用于可视化和调试机器学习模型并逐步跟踪算法工作的软件包,为 scikit-learn、XGBoost、LightGBM、lightning 和 sklearn-crfsuite 库提供支持,并为每个库执行不同的任务。

官网地址:https://eli5.readthedocs.io/

深度学习

TensorFlow

TensorFlow 是一个流行的深度学习和机器学习框架,由 Google Brain 开发。它提供了使用具有多个数据集的人工神经网络的能力。在最流行的 TensorFlow 应用中有目标识别、语音识别等。在常规的 TensorFlow 上也有不同的 leyer-helper,如 tflearn、tf-slim、skflow 等。

官网地址:https://www.tensorflow.org/

PyTorch

PyTorch 是一个大型框架,它允许使用 GPU 加速执行张量计算,创建动态计算图并自动计算梯度。在此之上,PyTorch 为解决与神经网络相关的应用程序提供了丰富的 API。该库基于 Torch,是用 C 实现的开源深度学习库。

官网地址:https://pytorch.org/

Keras

Keras 是一个用于处理神经网络的高级库,运行在 TensorFlow、Theano 之上,现在由于新版本的发布,还可以使用 CNTK 和 MxNet 作为后端。它简化了许多特定的任务,并且大大减少了单调代码的数量。然而,它可能不适合某些复杂的任务。

官网地址:https://keras.io/

分布式深度学习

dist-keras

Keras 的分布式深度学习框架。

官网地址:https://pypi.org/project/dist-keras/

elephas

基于 Keras 和 Spark 的分布式深度学习框架。

官网地址:https://pypi.org/project/elephas/

spark-deep-learning

基于 Spark 的分布式深度学习框架,还提供了使用 Python 神经网络创建管道的工具。

项目地址:https://github.com/databricks/spark-deep-learning

自然语言处理

NLTK

NLTK 是一组库,一个用于自然语言处理的完整平台。在 NLTK 的帮助下,你可以以各种方式处理和分析文本,对文本进行标记和标记,提取信息等。NLTK 也用于原型设计和建立研究系统。

官网地址:https://www.nltk.org/

SpaCy

SpaCy 是一个具有优秀示例、API 文档和演示应用程序的自然语言处理库。这个库是用 Cython 语言编写的,Cython 是 Python 的 C 扩展。它支持近 30 种语言,提供了简单的深度学习集成,保证了健壮性和高准确率。SpaCy 的另一个重要特性是专为整个文档处理设计的体系结构,无须将文档分解成短语。

官网地址:https://spacy.io/

Gensim

Gensim 是一个用于健壮语义分析、主题建模和向量空间建模的 Python 库,构建在 Numpy 和 Scipy 之上。它提供了流行的 NLP 算法的实现,如 word2vec。尽管 gensim 有自己的 models.wrappers.fasttext 实现,但 fasttext 库也可以用来高效学习词语表示。

官网地址:https://radimrehurek.com/gensim/

数据采集

Scrapy

Scrapy 是一个用来创建网络爬虫,扫描网页和收集结构化数据的库。此外,Scrapy 可以从 API 中提取数据。由于该库的可扩展性和可移植性,使得它用起来非常方便。

Scrapy 的更详细的内容参考 Scrapy 教程

官网地址:https://scrapy.org/