Python机器学习库概述:NumPy提供高效数组运算,是科学计算基础;Pandas擅长数据处理与分析;SciPy扩展科学计算功能;Scikit-learn实现主流机器学习算法;PyTorch和TensorFlow是深度学习框架;Keras提供高级神经网络API;Matplotlib和Seaborn用于数据可视化;OpenCV处理计算机视觉任务;NLTK和spaCy支持自然语言处理。这些库构成了Python强大的机器学习生态系统,覆盖数据处理、模型构建、训练评估等全流程,显著提升开发效率。
目录
[Keras 库](#Keras 库)
[Seaborn 库](#Seaborn 库)
Python 库是可用于特定任务的代码和函数集合。当任务重复且复杂时,它们通常用于简化编程过程。
正如你所知,机器学习是一个跨学科领域,每个算法都是结合编程和数学开发的。与其用数学和统计公式手动编写完整算法,不如使用库让这项任务变得简单。
Python 是实现机器学习最受欢迎的编程语言,因为它简单、库丰富且作便捷。
一些流行的Python机器学习库如下 −
让我们详细讨论上述提到的每个 Python 库。
NumPy
NumPy 是一种通用的数组和矩阵处理软件包,用于科学计算以及执行线性代数、傅里叶变换等多种数学运算。它提供了一个高性能的多维数组对象和工具,用于作矩阵以改进机器学习算法。它是Python机器学习生态系统中的关键组成部分,因为它为许多机器学习算法提供了基础数据结构和数值作。
通过使用 NumPy,我们可以执行以下重要的作 −
数组上的数学和逻辑运算。
傅里叶变换
与线性代数相关的运算。
我们也可以把 NumPy 看作是 MATLAB 的替代品,因为 NumPy 主要与 Scipy(Scientific Python)和 Mat-plotlib(绘图库)一起使用。
安装与执行
如果你用的是 Anaconda 发行版,那就不需要单独安装 NumPy,因为它已经安装好了。你只需通过以下作将包导入你的 Python 脚本 −
import numpy as np
另一方面,如果你使用标准的Python发行版,那么NumPy可以通过流行的Python软件安装包pip安装。
pip install numpy
示例
以下是一个简单的示例,利用 NumPy − 创建一维数组
import numpy as np
data = np.array([1,2,3,4,5])
print(data)
print(len(data))
print(type(data))
print(data.shape)
输出
上述 Python 示例代码将得到以下结果 −
[1 2 3 4 5] 5 <class 'numpy.ndarray'> (5,)
Pandas
Pandas是一个强大的数据作和分析库。该库并非直接用于机器学习算法,而是用于前一步,即数据准备。它基于两种数据结构:系列(一维)和数据框架(二维)。这使得它能够处理金融、商业和健康等多个行业的广泛典型用例。
借助Pandas,在数据处理中,我们可以完成以下五个步骤------
- Load
- Prepare
- Manipulate
- Model
- Analyze
Pandas中的数据表示
Pandas中数据的全部表示依赖以下三种数据结构------
级数 − 它是带有轴标签的一维ndarray,这意味着它类似于一个具有齐次数据的简单数组。例如,以下级数是整数 1、5、10、15、24、25... 的集合。
|---|---|----|----|----|----|----|----|----|----|
| 1 | 5 | 10 | 15 | 24 | 25 | 28 | 36 | 40 | 89 |
数据框架 − 它是最有用的数据结构,几乎用于Pandas中所有类型的数据表示和作。它是一种二维数据结构,可以包含异构数据。通常,表格数据通过数据帧表示。例如,下表显示了学生的姓名和编号、年龄和性别数据------
| Name | Roll number | Age | Gender |
|---|---|---|---|
| Aarav | 1 | 15 | Male |
| Harshit | 2 | 14 | Male |
| Kanika | 3 | 16 | Female |
| Mayank | 4 | 15 | Male |
面板 − 它是一种包含异构数据的三维数据结构。用图形表示面板非常困难,但可以将其作为DataFrame的容器进行说明。
下表给出了上述 Pandas 中使用的数据结构的维度和描述 −
| 数据结构 | 尺寸 | 描述 |
|---|---|---|
| Series | 1-D | 大小不可变的一维齐次数据 |
| DataFrames | 2-D | 表格形式的可变异质数据大小 |
| Panel | 3-D | 大小可变数组,DataFrame容器。 |
我们可以理解这些数据结构,因为高维数据结构是低维数据结构的容器。
安装与执行
如果你用的是 Anaconda 发行版,那就不需要单独安装 Panda,因为它已经安装好了。你只需通过以下作将包导入你的 Python 脚本 −
import pandas as pd
另一方面,如果你使用标准的 Python 发行版,那么 Pandas 可以通过流行的 Python 安装包 pip 安装。
pip install pandas
安装 Pandas 后,你可以像上面一样导入到 Python 脚本中。
示例
以下是使用 Pandas − 从 ndarray 创建级数的示例
import pandas as pd
import numpy as np
data = np.array(['g','a','u','r','a','v'])
s = pd.Series(data)
print (s)
输出
上述示例代码将得到以下结果 −
0 g 1 a 2 u 3 r 4 a 5 v dtype: object
SciPy
SciPy 是一个开源库,用于对大型数据集进行科学计算。它易于使用,执行数据可视化和作任务也非常快捷。它由用于算法优化以及执行积分、线性代数或信号处理等作的模块组成。SciPy 基于 NumPy 构建,但通过执行数值算法和代数函数等复杂任务来扩展其功能。
安装与执行
如果你使用的是 Anaconda 发行版,那么无需单独安装 SciPy 库,因为它已经随 Anaconda 一同安装好了。你只需在 Python 脚本中调用这个包即可。例如,通过以下这行脚本,我们可以从 scipy 库中导入 linalg 子模块:
from scipy import linalg
另一方面,如果你使用的是标准 Python 发行版,且已经安装了 NumPy 库,那么就可以通过 Python 常用的包管理工具 pip 来安装 SciPy 库。
pip install scipy
示例
以下是一个创建二维数组(矩阵)并求该矩阵逆矩阵的示例。
python
import numpy as np
import scipy
from scipy import linalg
A= np.array([[1,2],[3,4]])
print(linalg.inv(A))
输出结果
上述 Python 示例代码将生成如下结果:
[[-2. 1. ] [ 1.5 -0.5]]
Scikit-learn
Scikit-learn是一个基于NumPy和SciPy构建的流行开源库,用于实现机器学习模型和统计建模。它支持监督和无监督学习。它提供了多种工具,用于实现数据预处理、特征选择、模型选择、模型评估及许多其他任务。
以下是Scikit-learn使其如此实用的一些特性------
它基于 NumPy、SciPy 和 Matplotlib 构建。
它是开源的,可以在BSD许可下复用。
它对所有人开放,并且可以在各种场景中重复使用。
通过它,可以实现涵盖机器学习主要领域的多种机器学习算法,如分类、聚类、回归、降维、模型选择等。
安装与执行
如果你使用的是 Anaconda 发行版,那么无需单独安装 Scikit-learn 库,因为它已经随 Anaconda 预装完成。你只需在 Python 脚本中调用这个库即可。例如,通过以下这行代码,我们可以从 Scikit-learn 库中导入乳腺癌患者数据集:
python
from sklearn.datasets import load_breast_cancer
另一方面,如果你使用的是标准 Python 发行版,且已经安装了 NumPy 和 SciPy 库,那么就可以通过 Python 常用的包管理工具 pip 来安装 Scikit-learn 库。
python
pip install scikit-learn
安装好 Scikit-learn 库后,你就可以像之前那样在 Python 脚本中使用它了。
示例
以下是加载乳腺癌数据集的示例:
python
from sklearn.datasets import load_breast_cancer
data = load_breast_cancer()
print(data.target[[10, 50, 85]])
print(list(data.target_names))
输出结果
上述 Python 示例代码将生成如下结果:
[0 1 0] ['malignant', 'benign']
想更详细地学习Scikit-learn,可以访问链接 www.tutorialspoint.com/scikit_learn/index.htm。
PyTorch
PyTorch 是一个基于 Torch 库的开源 Python 库,通常用于开发深度神经网络。它基于直观的Python,能够动态定义计算图。PyTorch 对于需要灵活且强大的深度学习框架的研究人员和开发者尤其有用。
安装与执行
对于Python 3.8及以上版本以及Windows作系统上的CPU板形,您可以使用以下命令安装PyTorch(torch、torchvision和torchaudio)。
python
pip3 install torch torchvision torchaudio
你可以参考以下链接安装PyTorch,获得更多选项
https://pytorch.org/get-started/locally/
导入PyTorch时,请使用以下 −
python
import torch
安装PyTorch后,你可以像上面一样导入到你的Python脚本中。
示例
以下是一个创建NumPy数组并将其转换为PyTorch张量−的示例
python
import numpy as np
import torch
x = np.ones([3,4])
y = torch.from_numpy(x)
print(y)
输出
上述示例代码将得到以下结果 −
tensor([[1., 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]], dtype=torch.float64)
TensorFlow
TensorFlow 是谷歌开发的最知名软件库之一,可用于实现机器学习与深度学习任务。借助该库,用户能够更便捷地构建计算图,并在各类硬件平台上高效运行计算任务。它被广泛应用于自然语言处理、图像识别、手写识别等任务的开发工作。
安装与执行
对于Windows作系统的CPU平台,您可以使用以下命令使用 pip − 来安装 TensorFlow
python
pip install tensorflow
你可以参考以下链接,获取更多 TensorFlow 的安装配置选项:
https://www.tensorflow.org/install/pip
导入 TensorFlow 库可使用以下代码:
python
import tensorflow as tf
安装好 TensorFlow 库后,你就可以像之前那样将它导入到 Python 脚本中。
示例
以下是一个使用 TensorFlow 创建张量数据或张量对象的示例:
python
import tensorflow as tf
data = tf.constant([[2,1],[4,6]])
print(data)
输出结果
上述示例代码将生成如下结果:
tf.Tensor( [[2 1] [4 6]], shape=(2, 2), dtype=int32)
Keras 库
Keras 是一款用于构建深度学习模型的高级神经网络库。它可运行在 TensorFlow、CNTK 或 Theano 等后端框架之上。该库提供了简洁且直观的应用程序编程接口(API),用于模型的构建与训练,是新手入门和科研人员开展工作的优质选择。凭借便捷、高效的原型开发能力,Keras 已成为最受欢迎的深度学习库之一。
安装与执行
对于Windows作系统的CPU平台,请使用以下方法使用pip −安装Keras。
python
pip install keras
导入 TensorFlow 请使用以下 −
python
import keras
安装 Keras 后,你可以像我们之前那样导入到 Python 脚本中。
示例
在下面的示例中,我们从Kera导入CIFAR-10数据集,并打印训练数据和测试数据的形状------
python
import keras
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()
print(x_train.shape)
print(x_test.shape)
print(y_train.shape)
print(y_test.shape)
输出
上述示例代码将得到以下结果 −
(50000, 32, 32, 3) (10000, 32, 32, 3) (50000, 1) (10000, 1)
Matplotlib
Matplotlib 是一个流行的绘图库,通常用于数据可视化,用于创建图表、图、直方图和条形图。它为数据分析、探索和展示任务提供工具和功能。
安装与执行
我们可以用以下脚本行使用 pip − 安装 Matplotlib
python
pip install matplotlib
matplotlib 库的绝大多数实用功能都归属于 pyplot 子模块。我们可以通过以下几行代码从 matplotlib 库中导入 pyplot 子模块:
python
import matplotlib.pyplot as plt
安装好 Matplotlib 库后,你可以像我们之前操作的那样,将其导入到 Python 脚本中。
示例
在以下示例中,我们将使用 Matplotlib 库绘制一条直线:
python
import matplotlib.pyplot as plt
plt.plot([1,2,3],[1,2,3])
plt.show()
Seaborn 库
Seaborn 是一款基于 Matplotlib 构建、且与 Pandas 深度集成的开源 Python 库。它可用于绘制美观且信息丰富的统计图形,是开展商业分析与营销分析的理想工具。该库能够助力你学习和探索数据。
安装与执行
我们可以用以下脚本行使用 pip − 来安装 Seaborn
python
pip install seaborn
我们可以通过以下几行代码,将 Seaborn 库导入到 Python 脚本中:
python
import seaborn as sns
安装好 Seaborn 库后,你可以像我们之前操作的那样,将其导入到 Python 脚本中。
OpenCV
开源计算机视觉库(Open Source Computer Vision Library),简称 OpenCV,是一款用于计算机视觉和图像处理任务的 Python 库。该库可用于从数据中识别图像模式及各类特征,还能与 NumPy 集成以处理 OpenCV 数组结构。
NLTK
Natural Language ToolKit,自然语言工具包(Natural Language ToolKit),简称 NLTK,是一套常用于开发自然语言处理任务的 Python 编程环境。它包含易用的接口(如 WordNet),以及用于分类、分词、句法分析和语义推理的文本处理库。
spaCy
spaCy 是一款免费的开源 Python 库。它能以高效、优质的方式为自然语言处理的高阶任务提供功能支持。单词分词和词性标注是该库可高效完成的两项核心任务。
XGBoost、LightGBM 和 Gensim 是 Python 生态中另外几款常用于机器学习的工具与框架。学习 Python 相关库的使用,有助于理解机器学习的生态体系,也能助力模型的构建、训练与部署。