1. 机器学习常用Python库
    1. 1.NumPy
    2. 2.pandas
    3. 3. Matplotlib
    4. 4. PIL
    5. 5. IPython & Jupyter
    6. 6. scikit-learn (sklearn)
    7. 7. OpenCV

机器学习常用Python库

曾经 MATLAB 是机器学习领域里的主流语言,因为它拥有强大的科学计算能力和丰富的数据处理库

而在当下, Python 得到了越来越多的数据分析专业人士的青睐, 因为它不但拥有灵活强大的语法,有较低的学习门槛,而且出现了NumPy等专门用于科学计算的函数库,补足了计算性能上的问题。配合以更多辅助工具库,如绘制图形的Matplotlib 等,让Python 成为当前在机器学习领域使用最多的话言。

这里介绍几个常用工具库。

1.NumPy

NumPy 库为Python提供了基础的科学计算能力,遵循BSD 开源协议。

在标准的Python中,为了保持数组对象的动态特性,数组中实际存储的是每个元素的指针,存储和访问时都需要经过多次指针跳转。这样的方式虽然非常灵活,但对于数值运算来说既浪费内存又低效。

NumPy 弥补了这方面的不足:

  • 提供了如C语言一样的高效的N 维数组结构ndarray (N-dimensional array object)和一系列直接对数组进行处理的函数ufunc(universal function object)
  • 不但保留了Python简洁灵活的语法,也带来了不逊于C语言程序的运算速度。
  • NumPy 还提供了常用的线性代数计算,甚至傅里叶变换等函数, 可以进行多种信号处理。

2.pandas

Pandas 全称为Python Data Analysis Library , 是一个高性能数据结构和数据分析工具,同样遵循BSD 开源协议。

  • pandas 基于NumPy 构建。
  • 提供了一种高效的 DateFrame 结构, 可以自动对齐、补全数据,免去了由于输入数据缺失导致的问题。
  • 可以灵活地完成增加、删除数据列, 调整列的顺序等元数据操作。
  • DataFrame 还能像数据库一样进行一些简单的查询、聚合操作。

因此, 可以说pandas 是解决数据处理问题不可或缺的重要工具之一。

3. Matplotlib

Matplotlib 是功能强大的画图引擎,可以制作高质量的图表。绘图是数据分析工作中的一项重要任务,通过简洁易懂的类 MATLAB 接口,可以只用短短几行代码绘制曲线图、散点图、直方图、柱状图、饼状图等图标,方便人们更加直观地感受数据,并且完成分析数据的特征、查找异常数据值等工作。

另外,通过pandas 集成的部分工具函数,如 scatter matrix ,可以直接对高维数据进行可视化观察,对于分析数据处理数据有非常重要的帮助。

4. PIL

PIL 全称Python Imaging Library ,目前已经成为Python 平台的标准图片处理库。PIL 可以方便地读入和输出包括jpg、png 等多种常见类型的图像文件, 还能对图像做切割、翻转、添加文字等变换。是处理图像数据的常用工具之一。

5. IPython & Jupyter

Jupyter 是一个开源的交互式数据分析处理平台。Jupyter Notebook 能以Web 网页的形式创建和分享文档,并可以在文档中插入代码段,交互式地查看代码运行结果

IPython 是Jupyter 的前身, 也是目前Jupyter 中Python 代码的执行引擎。目前, Jupyter已经支持包括R,Julia 在内的多种数据分析常用语言。同时,因其搭建服务的便捷性,加上多种扩展功能,如制作精美的幻灯片,使其成为分享代码、分享文档的利器。

6. scikit-learn (sklearn)

scikit-learn: Machine Learning in Python。机器学习的python实现。

  • 简单高效的数据挖掘和数据分析工具
  • 通用性
  • 构建于NumPy, SciPy, and matplotlib基础上

在该库中封装了多种常用的分类、回归、聚类、数据降维、数据预处理等算法, 三五行代码就可以完成简单机器学习模型的定义和训练, 使数据挖掘变得非常简单。

scikit-leam 的接口设计是如此的合理易用, 以至于TensorFlow 出现以后, 很多项目都仿照scikit-leam 的接口对TensorFlow 进行了二次封装, 使接口更加简洁, 代码更加明晰易读。

7. OpenCV

OpenCV 的全称是Open Source Computer Vision Library , 是一款跨平台机器视觉工具库,在产品质量检测、医学成像、机器人、监控摄像机定位等多种计算机视觉应用领用中都有使用。

OpenCV 内核使用 C/C++ 语言开发,运行速度快。前端支持Python 、MATLAB 、Ruby 等多种语言。

OpenCV 中包含图像滤波、特征提取、视频分析、三维重建等功能模块,还包括人脸识别、目标检测等高级功能, 可以满足许多图像处理方面的高级需求。

由于计算机视觉与机器学习密切相关, OpenCV 中还集成了机器学习库,可以用于处理一些模式识别和聚类方面的问题。

参考资料:

scikit-learn介绍 - Hisense的专栏

Scikit-learn使用总结

scikit-learn机器学习库中文文档翻译项目


技术交流学习,请加QQ微信:631531977
目录