SciPyLectureNotes中文版 - (EPUB全文下载)

文件大小:9.92 mb。
文件格式:epub 格式。
书籍内容:

目錄
介绍 
1.1 科学计算工具及流程 
1.2 Python语言 
1.3 NumPy:创建和操作数值数据 
1.4 Matplotlib:绘图 
1.5 Scipy:高级科学计算 
1.6 获取帮助及寻找文档 
2.1 Python高级功能(Constructs) 
2.2 高级Numpy 
2.3 代码除错 
2.4 代码优化 
2.5 SciPy中稀疏矩阵 
2.6 使用Numpy和Scipy进行图像操作及处理 
2.7 数学优化:找到函数的最优解 
2.8 与C进行交互 
3.1 Python中的统计学 
3.2 Sympy:Python中的符号数学 
3.3 Scikit-image:图像处理 
3.4 Traits:创建交互对话 
3.5 使用Mayavi进行3D作图 
3.6 scikit-learn:Python中的机器学习 
SciPy Lecture Notes 中文版
原文:
SciPy Lecture Notes
译者:
cloga
来源:
scipy-lecture-notes_cn
协议:
CC BY 4.0
1.1 科学计算工具及流程
作者 : Fernando Perez, Emmanuelle Gouillart, Gaël Varoquaux, Valentin Haenel
1.1.1 为什么是Python?
1.1.1.1 科学家的需求
获得数据(模拟,实验控制)
操作及处理数据
可视化结果... 理解我们在做什么!
沟通结果:生成报告或出版物的图片,写报告
1.1.1.2 要求
对于经典的数学方法及基本的方法,有丰富的现成工具:我们不希望重新编写程序去画出曲线、傅立叶变换或者拟合算法。不要重复发明轮子!
易于学习:计算机科学不是我们的工作也不是我们的教育背景。我们想要在几分钟内画出曲线,平滑一个信号或者做傅立叶变换,
可以方便的与合作者、学生、客户进行交流,代码可以存在于实验室或公司里面:代码的可读性应该像书一样。因此,这种语言应该包含尽可能少的语法符号或者不必要的常规规定,使来自数学或科学领域读者愉悦的理解这些代码。
语言高效,执行快...但是不需要是非常快的代码,因为如果我们花费了太多的时间来写代码,非常快的代码也是无用的。
一个单一的语言/环境做所有事,如果可能的话,避免每个新问题都要学习新软件
1.1.1.3 现有的解决方案
科学家用哪种解决方案进行工作?
编译语言:C、C++、Fortran等。
优势:
非常快。极度优化的编译器。对于大量的计算来说,很难比这些语言的性能更好。
一些非常优化的科学计算包。比如:BLAS(向量/矩阵操作)
不足:
使用起来令人痛苦:开发过程中没有任何互动,强制编译步骤,啰嗦的语法(&, ::, }}, ; 等),手动内存管理(在C中非常棘手)。对于非计算机学家他们是
艰深的语言

脚本语言:Matlab
优势:
对不同的领域的多种算法都有非常的类库。执行很快,因为这些类库通常使用编译语言写的。
友好的开发环境:完善的、组织良好的帮助,整合的编辑器等
有商业支持
不足:
基础语言非常欠缺,会限制高级用户
不是免费的
其他脚本语言:Scilab、Octave、Igor、R、IDL等。
优势:
开源、免费,或者至少比Matlba便宜。
一些功能非常高级(R的统计,Igor的图形等。)
不足:
比Matlab更少的可用算法,语言也并不更高级
一些软件更专注于一个领域。比如,Gnuplot或xmgrace画曲线。这些程序非常强大,但是他们只限定于一个单一用途,比如作图。
那Python呢?
优势:
非常丰富的科学计算包(尽管比Matlab少一些)
精心设计的语言,允许写出可读性非常好并且结构良好的代码:我们“按照我们所想去写代码”。
对于科学计算外的其他任务也有许多类库(网站服务器管理,串口接收等等。)
免费的开源软件,广泛传播,有一个充满活力的社区。
不足:
不太友好的开发环境,比如与Matlab相比。(更加极客向)。
并不是在其他专业软件或工具箱中可以找到算法都可以找到
1.1.2 Python科学计算的构成
与Matlba,Scilab或者R不同,Python并没有预先绑定的一组科学计算模块。下面是可以组合起来获得科学计算环境的基础的组件。
Python
,通用的现代计算语言
Python语言:数据类型(字符string,整型int),流程控制,数据集合(列表list,字典dict),模式等等。
标准库及模块
用Pyhon写的大量专业模块及应用:网络协议、网站框架等...以及科学计算。
开发工具(自动测试,文档生成)
IPython
, 高级的
Python Shell
http://ipython.org/
Numpy
: 提供了强大数值数组对象以及程序去操作它们。
http://www.numpy.org/
Scipy
: 高级的数据处理程序。优化、回归插值等
http://www.scipy.org/
Matplotlib
: 2D可视化,“出版级”的图表
http://matplotlib.sourceforge.net/
Mayavi
: 3D可视化
http://code.enthought.com/projects/mayavi/
1.1.3 交互工作流:IPython和文本编辑器
测试和理解算法的交互工作
:在这个部分我们描述一下用
IPython
的交互工作流来方便的研究和理解算法。
Python是一门通用语言。与其他的通用语言一样,没有一个绝对权威的工作环境,也不止一种方法使用它。尽管这对新人来说不太好找到适合自己的方式,但是,这使得Python被用于在网站服务器或嵌入设备中编写程序。
本部分的参考文档

IPython用户手册

http://ipython.org/ipython-doc/dev/index.html
1.1.3.1 命令行交互
启动ipython:
In [1]:
print(' ............

书籍插图:
书籍《SciPyLectureNotes中文版》 - 插图1
书籍《SciPyLectureNotes中文版》 - 插图2

以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。

版权声明:书云(openelib.org)是世界上最大的在线非盈利图书馆之一,致力于让每个人都能便捷地了解我们的文明。我们尊重著作者的知识产权,如您认为书云侵犯了您的合法权益,请参考版权保护声明,通过邮件openelib@outlook.com联系我们,我们将及时处理您的合理请求。 数研咨询 流芳阁 研报之家
书云 Open E-Library » SciPyLectureNotes中文版 - (EPUB全文下载)