python函数算法编程 python数学函数的计算( 七 )


Python语言处理和操作文本文件非常简单,非常易于处理非数值型数据 。Python语言提供了丰富的正则表达式函数以及很多访问Web页面的函数库,使得从HTML中提取数据变得非常简单直观 。
Python比较流行
Python语言使用广泛,代码范例也很多,便于读者快速学习和掌握 。此外,在开发实际应用程序时 , 也可以利用丰富的模块库缩短开发周期 。
在科学和金融领域,Python语言得到了广泛应用 。SciPy和NumPy等许多科学函数库都实现了向量和矩阵操作,这些函数库增加了代码的可读性,学过线性代数的人都可以看懂代码的实际功能 。另外,科学函数库SciPy和NumPy使用底层语言(C和Fortran)编写,提高了相关应用程序的计算性能 。本书将大量使用Python的NumPy 。
Python的科学工具可以与绘图工具Matplotlib协同工作 。Matplotlib可以绘制2D、3D图形,也可以处理科学研究中经常使用到的图形 , 所以本书也将大量使用Matplotlib 。
Python开发环境还提供了交互式shell环境 , 允许用户开发程序时查看和检测程序内容 。
Python开发环境将来还会集成Pylab模块,它将NumPy、SciPy和Matplotlib合并为一个开发环境 。在本书写作时,Pylab还没有并入Python环境,但是不远的将来我们肯定可以在Python开发环境找到它 。
Python语言的特色
诸如MATLAB和Mathematica等高级程序语言也允许用户执行矩阵操作 , MATLAB甚至还有许多内嵌的特征可以轻松地构造机器学习应用,而且MATLAB的运算速度也很快 。然而MATLAB的不足之处是软件费用太高,单个软件授权就要花费数千美元 。虽然也有适合MATLAB的第三方插件,但是没有一个有影响力的大型开源项目 。
Java和C等强类型程序设计语言也有矩阵数学库,然而对于这些程序设计语言来说,最大的问题是即使完成简单的操作也要编写大量的代码 。程序员首先需要定义变量的类型,对于Java来说 , 每次封装属性时还需要实现getter和setter方法 。另外还要记着实现子类,即使并不想使用子类,也必须实现子类方法 。为了完成一个简单的工作,我们必须花费大量时间编写了很多无用冗长的代码 。Python语言则与Java和C完全不同 , 它清晰简练 , 而且易于理解 , 即使不是编程人员也能够理解程序的含义,而Java和C对于非编程人员则像天书一样难于理解 。
所有人在小学二年级已经学会了写作,然而大多数人必须从事其他更重要的工作 。
——鲍比·奈特
也许某一天,我们可以在这句话中将“写作”替代为“编写代码”,虽然有些人对于编写代码很感兴趣,但是对于大多数人来说,编程仅是完成其他任务的工具而已 。Python语言是高级编程语言,我们可以花费更多的时间处理数据的内在含义,而无须花费太多精力解决计算机如何得到数据结果 。Python语言使得我们很容易表达自己的目的 。
Python语言的缺点
Python语言唯一的不足是性能问题 。Python程序运行的效率不如Java或者C代码高,但是我们可以使用Python调用C编译的代码 。这样,我们就可以同时利用C和Python的优点 , 逐步地开发机器学习应用程序 。我们可以首先使用Python编写实验程序,如果进一步想要在产品中实现机器学习,转换成C代码也不困难 。如果程序是按照模块化原则组织的 , 我们可以先构造可运行的Python程序 , 然后再逐步使用C代码替换核心代码以改进程序的性能 。C++ Boost库就适合完成这个任务,其他类似于Cython和PyPy的工具也可以编写强类型的Python代码 , 改进一般Python程序的性能 。