写点什么

python 常用库简介

发布于: 2021 年 03 月 07 日

1 Scipy

Scipy 是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。它用于有效计算 Numpy 矩阵,使 Numpy 和 Scipy 协同工作,高效解决问题。

SciPy 是一款方便、易于使用、专为科学和工程设计的 Python 工具包。它包括统计,优化,整合,线性代数模块,傅里叶变换,信号和图像处理,常微分方程求解器等等。


2 Pillow

PIL:Python Imaging Library,已经是 Python 平台事实上的图像处理标准库了。PIL 功能非常强大,但 API 却非常简单易用。

由于 PIL 仅支持到 Python 2.7,加上年久失修,于是一群志愿者在 PIL 的基础上创建了兼容的版本,名字叫 Pillow,支持最新 Python 3.x,又加入了许多新特性,因此,我们可以直接安装使用 Pillow。


3 cv2,opencv-python

OpenCV 是一个基于 BSD 许可(开源)发行的跨平台计算机视觉库,可以运行在 Linux、Windows、Android 和 Mac OS 操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了 Python、Ruby、MATLAB 等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV 用 C++语言编写,它的主要接口也是 C++语言,但是依然保留了大量的 C 语言接口。

在计算机视觉项目的开发中,OpenCV 作为较大众的开源库,拥有了丰富的常用图像处理函数库,采用 C/C++语言编写,可以运行在 Linux/Windows/Mac 等操作系统上,能够快速的实现一些图像处理和识别的任务。此外,OpenCV 还提供了 Java、python、cuda 等的使用接口、机器学习的基础算法调用,从而使得图像处理和图像分析变得更加易于上手,让开发人员更多的精力花在算法的设计上。


4 Matplotlib

Matplotlib 是一个 Python 的 2D 绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。

Matplotlib 可能是 Python 2D 绘图领域使用最广泛的库。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式 。


5 Numpy

Numpy 是高性能科学计算和数据分析的基础包。

NumPy 系统是 Python 的一种开源的数值计算扩展。NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。


6 Panda

Python Data Analysis Library 或 pandas 是基于 NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas 提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 1、Python Data Analysis Library 或 pandas 是基于 NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas 提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使 Python 成为强大而高效的数据分析环境的重要因素之一。

  • 2、Pandas 是 python 的一个数据分析包,最初由 AQR Capital Management 于 2008 年 4 月开发,并于 2009 年底开源出来,目前由专注于 Python 数据包开发的 PyData 开发 team 继续开发和维护,属于 PyData 项目的一部分。Pandas 最初被作为金融数据分析工具而开发出来,因此,pandas 为时间序列分析提供了很好的支持。 Pandas 的名称来自于面板数据(panel data)和 python 数据分析(data analysis)。panel data 是经济学中关于多维数据集的一个术语,在 Pandas 中也提供了 panel 的数据类型。

  • 3、数据结构:

Series:一维数组,与 Numpy 中的一维 array 类似。二者与 Python 基本的数据结构 List 也很相近,其区别是:List 中的元素可以是不同的数据类型,而 Array 和 Series 中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。

Time- Series:以时间为索引的 Series。

DataFrame:二维的表格型数据结构。很多功能与 R 中的 data.frame 类似。可以将 DataFrame 理解为 Series 的容器。以下的内容主要以 DataFrame 为主。

Panel :三维的数组,可以理解为 DataFrame 的容器。

Pandas 有两种自己独有的基本数据结构。读者应该注意的是,它固然有着两种数据结构,因为它依然是 Python 的一个库,所以,Python 中有的数据类型在这里依然适用,也同样还可以使用类自己定义数据类型。只不过,Pandas 里面又定义了两种数据类型:Series 和 DataFrame,它们让数据操作更简单了。

7 Flask

Flask 是一个基于 Python 开发并且依赖 jinja2 模板和 Werkzeug WSGI 服务的一个微型框架,对于 Werkzeug 本质是 Socket 服务端,其用于接收 http 请求并对请求进行预处理,然后触发 Flask 框架,开发人员基于 Flask 框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助 jinja2 模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器。

“微”(micro) 并不表示你需要把整个 Web 应用塞进单个 Python 文件(虽然确实可以 ),也不意味着 Flask 在功能上有所欠缺。微框架中的“微”意味着 Flask 旨在保持核心简单而易于扩展。Flask 不会替你做出太多决策——比如使用何种数据库。而那些 Flask 所选择的——比如使用何种模板引擎——则很容易替换。除此之外的一切都由可由你掌握。如此,Flask 可以与您珠联璧合。

默认情况下,Flask 不包含数据库抽象层、表单验证,或是其它任何已有多种库可以胜任的功能。然而,Flask 支持用扩展来给应用添加这些功能,如同是 Flask 本身实现的一样。众多的扩展提供了数据库集成、表单验证、上传处理、各种各样的开放认证技术等功能。Flask 也许是“微小”的,但它已准备好在需求繁杂的生产环境中投入使用。

8 flask-restful

flask 的 RESTful 扩展库 flask-restful

9 Keras

高阶神经网络开发库,可运行在 TensorFlow 或 Theano 上,基于 Python 的深度学习库 这就是 Keras ,Keras 是一个高层神经网络 API,Keras 由纯 Python 编写而成并基 Tensorflow、Theano 以及 CNTK 后端,也就是 Keras 基于什么东西来做运算。Keras 为支持快速实验而生,能够把你的 idea 迅速转换为结果,如果你有如下需求,请选择 Keras: 简易和快速的原型设计(keras 具有高度模块化,极简,和可扩充特性) 支持 CNN 和 RNN,或二者的结合 无缝 CPU 和 GPU 切换。

TensorFlow 和 theano 以及 Keras 都是深度学习框架,TensorFlow 和 theano 比较灵活,也比较难学,它们其实就是一个微分器 Keras 其实就是 TensorFlow 和 Keras 的接口(Keras 作为前端,TensorFlow 或 theano 作为后端),它也很灵活,且比较容易学。可以把 keras 看作为 tensorflow 封装后的一个 API。Keras 是一个用于快速构建深度学习原型的高级库。我们在实践中发现,它是数据科学家应用深度学习的好帮手。Keras 目前支持两种后端框架:TensorFlow 与 Theano,而且 Keras 再过不久就会成为 TensorFlow 的默认 API。


10 Statismodels

Statismodels 是一个 Python 模块,它提供对许多不同统计模型估计的类和函数,并且可以进行统计测试和统计数据的探索。

Statismodels 是一个 Python 包,提供一些互补 scipy 统计计算的功能,包括描述性统计和统计模型估计和推断。


11 Theano

Pyhton 深度学习库,Theano 是一个 Python 库,专门用于定义、优化、求值数学表达式,效率高,适用于多维数组。特别适合做机器学习。一般来说,使用时需要安装 python 和 numpy.

12 XGBoost

该模块是大规模并行 boosted tree 的工具,它是目前最快最好的开源 boosted tree 工具包。

  • 基础概念

XGBoost(eXtreme Gradient Boosting)是 GradientBoosting 算法的一个优化的版本,针对传统 GBDT 算法做了很多细节改进,包括损失函数、正则化、切分点查找算法优化等。


xgboost 的优化点

相对于传统的 GBM,XGBoost 增加了正则化步骤。正则化的作用是减少过拟合现象。

xgboost 可以使用随机抽取特征,这个方法借鉴了随机森林的建模特点,可以防止过拟合。


速度上有很好的优化,主要体现在以下方面:

1、现了分裂点寻找近似算法,先通过直方图算法获得候选分割点的分布情况,然后根据候选分割点将连续的特征信息映射到不同的 buckets 中,并统计汇总信息。

2、xgboost 考虑了训练数据为稀疏值的情况,可以为缺失值或者指定的值指定分支的默认方向,这能大大提升算法的效率。

3、正常情况下 Gradient Boosting 算法都是顺序执行,所以速度较慢,xgboost 特征列排序后以块的形式存储在内存中,在迭代中可以重复使用,因而 xgboost 在处理每个特征列时可以做到并行。


总的来说,xgboost 相对于 GBDT 在模型训练速度以及在降低过拟合上不少的提升。

13 Sklearn

Sklearn 是 Python 的重要机器学习库,其中封装了大量的机器学习算法,如:分类、回归、降维以及聚类;还包含了监督学习、非监督学习、数据变换三大模块。sklearn 拥有完善的文档,使得它具有了上手容易的优势;并它内置了大量的数据集,节省了获取和整理数据集的时间。因而,使其成为了广泛应用的重要的机器学习库。

Scikit-Learn 是基于 python 的机器学习模块,基于 BSD 开源许可证。scikit-learn 的基本功能主要被分为六个部分,分类,回归,聚类,数据降维,模型选择,数据预处理。Scikit-Learn 中的机器学习模型非常丰富,包括 SVM,决策树,GBDT,KNN 等等,可以根据问题的类型选择合适的模型。


14 zipline

一个交易算法库,该系统是对现场交易系统如何运转的一个近似,可以对历史数据进行投资算法的回溯检验。

15 Seaborn

Seaborn 是基于 matplotlib 的 python 数据可视化库,提供更高层次的 API 封装,使用起来更加方便快捷。该模块是一个统计数据可视化库。

Seaborn 简洁而强大,和 pandas、numpy 组合使用效果更佳,值得注意的是,Seaborn 并不是 matplotlib 的代替品,很多时候仍然需要使用 matplotlib 的。


16 TA-Lib

TALib 是一个处理金融数据和技术分析的开放代码库。

17 TensorFlow

谷歌基于 DistBelief 进行研发的第二代人工智能学习系统。

18 TensorLayer

TensorLayer 是为研究人员和工程师设计的一款基于 Google TensorFlow 开发的深度学习与强化学习库。

19 cvxopt

凸优化的工具库。

20 hmmlearn

隐含马尔可夫模型工具库。

21 pyltr

pyltr 是一个 Python 学习排名工具包,包含排名模型,评估指标,数据争论帮助程序等。

22 empyrical

常见的财务风险指标。

23 bottleneck

Bottleneck 是用 C 编写的快速 NumPy 数组函数的集合。

24 pywt

用于连接到 Webtrends 的 python 模块。

25 tensorforce

该模块是一个构建于 TensorFlow 之上的新型强化学习 API。

26 edward

该模块为线性混合模型。

27 arch

自回归条件异方差模型模型将当前一切可利用信息作为条件,并采用某种自回归形式来刻画方差的变异,对于一个时间序列而言,在不同时刻可利用的信息不同,而相应的条件方差也不同,利用 ARCH 模型,可以刻画出随时间而变异的条件方差。

28 pyspark

大规模内存分布式计算框架。

29 alphalens

因子分析库。

30 graphviz

该软件包有助于在 Python 的 Graphviz 图形绘制软件(主仓库)的 DOT 语言中创建和呈现图形描述。

31 IOHMM

输入输出隐马尔可夫模型(IOHMM)的 Python 包。

32 gplearn

遗传规划工具库。

33 cvxpy

该模块是一种可以内置于 Python 中的模型编程语言,解决凸优化问题。

34 cloudpickle

cloudpickle 对于集群计算特别有用,其中 Python 表达式通过网络传送到远程主机上执行,可能接近数据。

35 pyfinance

金融数据处理的工具包。

36 catboost

一种主流的机器学习工具库。

37 lightgbm

一种主流的机器学习工具库。

38 chainer

该模块是一个专门为高效研究和开发深度学习算法而设计的开源框架。

39 chainer-rl

Chainer 是一个强大、灵活、直观的深度学习框架。

40 keras-rl

Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。

41 jieba

jieba 库是一款优秀的 Python 第三方中文分词库,jieba 支持三种分词模式:精确模式、全模式和搜索引擎模式,下面是三种模式的特点。

  • 精确模式:试图将语句最精确的切分,不存在冗余数据,适合做文本分析

  • 全模式:将语句中所有可能是词的词语都切分出来,速度很快,但是存在冗余数据

  • 搜索引擎模式:在精确模式的基础上,对长词再次进行切分。

42 wordcloud

wordcloud 库,可以说是 python 非常优秀的词云展示第三方库。词云以词语为基本单位更加直观和艺术的展示文本。


用户头像

还未添加个人签名 2021.02.27 加入

还未添加个人简介

评论

发布
暂无评论
python常用库简介