Python 介绍 Python 语言
“Life is short, you need Python.” —— Bruce Eckel 自从 1991 年诞生以来,Python 已经成为一种非常受欢迎的编程语言。与 C/C++等编译型 语言不同,Python 是一门解释性语言,即 Python 程序不需要编译,在运行时才翻译成机 器语言,每执行一次都需要翻译一次,因此在运算效率方面不如编译型语言。但是,Python 不需要关注程序的编译和库的链接等问题,开发工作相比于编译型语言更加轻松;同时, 解释型语言易于移植,适合跨平台的开发。 作为一门简单易学、适合阅读的编程语言,Python 在机器学习的实践中得到了广泛的应 用,其主要有以下优点: 1. 免费,开源,有大量的社区讨论交流资料。 2. 可以专注于逻辑、算法本身,而不是纠结于如何实现某个数据结构。自身的数据结构 应用简单方便,可以大大提高开发效率。 3. 包(package)、库(library)和模块(module)众多,例如 NumPy、SciPy、pandas、 Matplotlib 可以很方便地进行数据处理,scikit-learn、TensorFlow、Theano、Keras 都是机器学习领域流行的包。 Anaconda 及包的安装 安装 Anaconda Anaconda 是一个用于科学计算的 Python 发行版本,支持 Linux、Mac、Windows 系统, 提供了包管理与环境管理的功能,可以很方便地解决多版本 Python 并存、切换以及各种 第三方包安装问题,并且已经包含了 Python 和相关的配套工具。Anaconda 界面友好、 使用方便、具有强大的包管理与环境管理功能,推荐本领域的研究者使用。Anaconda 的 下载安装可以通过以下两个途径: 虽然 Anaconda 已经内嵌了很多包,但在实际运用中,我们可能会用到一些非自带的包。 接下来我们学习在 Windows 下如何安装和更新包:首先,Windows 用户在“开始”中打 开 Anaconda 的文件夹,点击 Anaconda Prompt,得到如下图的命令行窗口。 安装包 安装包的命令为 conda install,具体用法为在 Anaconda Prompt 中输入 conda install + 包 的名字。下图展示了安装 scikit-learn 包的过程,Anaconda 将自动搜取包的源。当出现对 话“Proceed<[y]/n>?”时,输入“y”,表示确认安装,等待 Anaconda 自动安装即可。 更新包 更新包的命令为 conda update。具体用法为在 Anaconda Prompt 中输入 conda update + 包的名称。下图展示了更新 pandas 包的过程。当出现对话“Proceed<[y]/n>?”时,输入“y”, 表示确认更新,等待 Anaconda 自动更新即可。 Python 和常用包初探获取帮助 授人以鱼不如授人以渔。当我们不清楚某个命令或者函数的用法时,使用 help 命令获取 帮助是不错的选择,具体用法为 help(‘函数名’)。 上面的例子中,我们使用 help 查询 print 函数的用法。Python 返回 print 的语法以及每个 参数的用法。由于 Python 和包的迭代较快,很多纸质和网络教材编写时依据的 Python 版 本难以保证是最新版,有的函数已被弃用或者用法发生改动,因此我们推荐有一定英语阅 读能力的读者使用 help 命令获取最新版的帮助信息。 缩进 在介绍 Python 常用包和数据类型之前,我们首先介绍 Python 代码的缩进。Python 的一 大特色就是严格的代码缩进要求,与别的语言中缩进只是为了方便代码阅读与修改不同, 在 Python 中每行代码前的缩进都有语法和逻辑上的意义。这样的强制要求增加了代码的 可读性,也使得代码总体较为美观。通常我们选择 4 个空格或 1 个 Tab 来进行缩进, Anaconda 中的 Spyder IDE 也会在写代码过程中自动进行缩进。如果要进行多行代码的 集体缩进,可以选中目标代码按 Tab 进行集体向右缩进,Shift+Tab 进行集体向左缩进。 列表 列表(list)是 Python 中的有序集合类型,列表的元素可以包括任何种类的对象:数字、 字符串、或者其他的列表、DataFrame 等等。下面是常见的列表操作: 上述代码中,list1 列表包含 1 个字符串’Huatai’,list2 列表包含 1 个整数 601688。我们使 用简单的加法,把两个列表拼接了起来,得到包含 2 个元素的列表 list3。11-12 行是列表 的索引,Python 序列的索引从 0 开始,因此 list3[1] 返回的是列表中的第 2 个元素。在 Python 中,我们以#号开头为代码添加注释,如第 1 行所示,能够大大提高代码的可读性。 NumPy 和数组 NumPy 是数据科学领域最常用的 Python 包之一,能够储存和处理大型数组,具备强大的 科学计算功能。NumPy 的核心是多维数组对象,即 ndarray。这种面向数组的编程方式, 使得对海量数据的处理更为方便,逻辑更加清晰。
在使用 NumPy 包之前,需要通过 import 命令调入 NumPy 包。以后每次使用 NumPy 包 中的函数,在函数名前加上 np.即可。 - 创建 ndarray 数组 np.array:输入序列型的对象,通过 array 函数,将其转换为 NumPy 数组。下面的例子中 我们将列表类型的 data 通过 array 函数转换为数组类型的 arr1。
np.arange:构建一个等差数列。下面的例子中,我们构建了一个从 0 开始,包含 10 个元 素的等差数列。 np.reshape:将数组重塑为另一个形状。下面的例子中,我们将 1 行 10 列的数组 arr2 通 过 reshape 方法转换为 2 行 5 列的数组 arr3。 另外,我们还可以通过 np.zeros 或者 np.ones 直接创建指定长度或形状的全 0 或 1 数组。 - 常用函数 np.sqrt:计算数组各元素的平方根。
np.mean:计算数组各元素的算术平均值。 np.std:计算数组各元素的标准差。 np.dot:实现两个矩阵的乘法。下面的例子中,arr3 是一个 2 行 5 列的矩阵,arr4 是 5 行 2 列的矩阵。矩阵相乘需要满足的条件是第一个矩阵的列数和第二个矩阵的行数相同。 np.multiply:实现两个数组各元素相乘,两个数据的形状必须相同。 其中 random.randn 是 NumPy 包的函数,作用是生成服从标准正态分布的随机数。参数 (2,5)表示生成 2 行 5 列的随机数组。 np.around:对数值进行四舍五入,取近似值。参数 decimal 表示保留小数位数,默认保 留 0 位小数,即四舍五入取整数。
|