欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

【机器学习】必要的库和工具

时间:2023-06-05
文章目录

Jupyter NotebookNumPy-n维数组SciPy-稀疏矩阵matplotlib-科学绘图库pandas-处理分析数据 Jupyter Notebook

Jupyter Notebook是可以在浏览器中运行代码的交互环境。这个工具在探索性数据分析方面非常有用,在数据科学家中广为使用。虽然Jupyter Notebook支持多种编程语言,但我们只需要支持Python即可。用Jupyter Notebook整合代码、文本和图像非常方便,实际上本书所有内容都是以Jupyter Notebook的形式进行编写的。所有代码示例都可以在GitHub下载(https://github.com/amueller/introduction_to_ml_with_python)。

NumPy-n维数组

NumPy是Python科学计算的基础包之一。它的功能包括多维数组、高级数学函数(比如线性代数运算和傅里叶变换),以及伪随机数生成器。
在scikit-learn中,NumPy数组是基本数据结构。scikit-learn接受NumPy数组格式的数据。你用到的所有数据都必须转换成NumPy数组。NumPy的核心功能是ndarray类,即多维(n维)数组。数组的所有元素必须是同一类型。NumPy数组如下所示:

In[2]:import numpy as npx = np.array([[1, 2, 3], [4, 5, 6]])print("x:n{}".format(x))Out[2]:x:[[1 2 3] [4 5 6]]

SciPy-稀疏矩阵

SciPy是Python中用于科学计算的函数集合。它具有线性代数高级程序、数学函数优化、信号处理、特殊数学函数和统计分布等多项功能。scikit-learn利用SciPy中的函数集合来实现算法。对我们来说,SciPy中最重要的是scipy.sparse:它可以给出稀疏矩阵(sparse matrice),稀疏矩阵是scikit-learn中数据的另一种表示方法。如果想保存一个大部分元素都是0的二维数组,就可以使用稀疏矩阵:

In[3]:import numpy as npfrom scipy import sparseeye = np.eye(4)print("NumPy array:n{}".format(eye))Out[3]:NumPy array:[[1、0、0、0.] [0、1、0、0.] [0、0、1、0.] [0、0、0、1.]]In[4]sparse_matrix = sparse.csr_matrix(eye)print("nScipy sparse CSR matrix:n{}".format(sparse_matrix))Out[4]Scipy sparse CSR matrix: (0, 0)1.0 (1, 1)1.0 (2, 2)1.0 (3, 3)1.0

通常来说,创建稀疏数据的稠密表示(dense representation)是不可能的(因为太浪费内存),所以我们需要直接创建其稀疏表示(sparserepresentation)。下面给出的是创建同一稀疏矩阵的方法,用的是COO格式:

In[5]data = np.ones(4)row_indices = np.arange(4)col_indices = np.arange(4)eye_coo = sparse.coo_matrix((data, (row_indices, col_indices)))print("COO representation:n{}".format(eye_coo))Out[5]COO representation: (0, 0)1.0 (1, 1)1.0 (2, 2)1.0 (3, 3)1.0

关于SciPy稀疏矩阵的更多内容可查阅SciPy讲稿。

matplotlib-科学绘图库

matplotlib是Python主要的科学绘图库,其功能为生成可发布的可视化内容,如折线图、直方图、散点图等。将数据及各种分析可视化,可以让你产生深刻的理解,而我们将用matplotlib完成所有的可视化内容。在Jupyter Notebook中,你可以使用%matplotlib notebook和%matplotlib inline命令,将图像直接显示在浏览器中。我们推荐使用%matplotlib notebook命令,它可以提供交互环境。举个例子,下列代码会生成图1-1中的图像:

# %matplotlib inline# 如果在pycharm里运行这里会报错,注释掉,在代码末尾加plt.show()就行import matplotlib.pyplot as pltimport numpy as npx = np.linspace(-10, 10, 100) #在-10和10之间生成数列,共100个数y = np.sin(x) # 用正弦函数创建第二个数组plt.plot(x, y, marker="x") # 绘制一个数组关于另一个数组的折线图plt.show()

pandas-处理分析数据

pandas是用于处理和分析数据的Python库。它基于一种叫作Dataframe的数据结构,这种数据结构模仿了R语言中的Dataframe。简单来说,一个pandasDataframe是一张表格,类似于Excel表格。pandas中包含大量用于修改表格和操作表格的方法,尤其是可以像SQL一样对表格进行查询和连接。NumPy要求数组中的所有元素类型必须完全相同,而pandas不是这样,每一列数据的类型可以互不相同(比如整型、日期、浮点数和字符串)。pandas的另一个强大之处在于,它可以从许多文件格式和数据库中提取数据,如SQL、Excel文件和逗号分隔值(CSV)文件。

import pandas as pdfrom IPython.display import displaydata = { 'Name': ["John", "Anna", "Peter", "Linda"], 'Location': ["NewYork", "Paris", "Berlin", "London"], 'Age': [24, 13, 53, 33]}data_pandas = pd.Dataframe(data)display(data_pandas)


这个表格也可以用于查询

display(data_pandas[data_pandas.Age > 30])

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。