在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
科学计算因为Python出色的特性而选择了它。本文将介绍Python科学计算相关的基础知识,并给大家推荐一本相关的书籍,让大家在丰富的实践案例中,得出学习经验。
基础理论篇:
Python是一种面向对象的、动态的程序设计语言。具有非常简洁而清晰的语法,适合于完成各种高层任务。它既可以用来快速开发程序脚本,也可以用来开发大规模的软件。
随着NumPy, SciPy, Matplotlib, Enthought librarys等众多程序库的开发,Python越来越适合于做科学计算、绘制高质量的2D和3D图像。和科学计算领域最流行的商业软件Matlab相比,Python是一门通用的程序设计语言,比Matlab所采用的脚本语言的应用范围更广泛,有更多的程序库的支持。虽然Matlab中的许多高级功能和toolbox目前还是无法替代的,不过在日常的科研开发之中仍然有很多的工作是可以用Python代劳的。
1.Numpy--快速处理数据
标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3],需要有3个指针和三个整数对象。对于数值运算来说这种结构显然比较浪费内存和CPU计算时间。
此外Python还提供了一个array模块,array对象和列表不同,它直接保存数值,和C语言的一维数组比较类似。但是由于它不支持多维,也没有各种运算函数,因此也不适合做数值运算。
NumPy的诞生弥补了这些不足,NumPy提供了两种基本的对象:ndarray(N-dimensional array object)和 ufunc(universal function object)。ndarray(下文统一称之为数组)是存储单一数据类型的多维数组,而ufunc则是能够对数组进行处理的函数。
ndarray对象
创建array对象
首先需要创建数组才能对其进行其它操作。
我们可以通过给array函数传递Python的序列对象创建数组,如果传递的是多层嵌套的序列,将创建多维数组(下例中的变量c):
'''python'''
@author: koushihao
import numpy as np
a = np.array([1, 2, 3, 4])
b = np.array((5, 6, 7, 8))
c = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]])
结果:
b
array([5, 6, 7, 8])
c
array([[1, 2, 3, 4],
[4, 5, 6, 7],
[7, 8, 9, 10]])
c.dtype
dtype('int32')
(2)ufunc运算
(3)矩阵运算
(4)文件存取
2、SciPy--数值计算库
3、SymPy-符号运算好帮手
4、matplotlib-绘制精美的图表
5、Traits-为Python添加类型定义
6、TraitsUI-轻松制作用户界面
实战项目篇:
《Python科学计算》介绍了如何用Python开发科学计算的应用程序,除了介绍数值计算之外,还着重介绍如何制作交互式的2D、3D图像,如何设计精巧的程序界面,如何与C语言编写的高速计算程序结合,如何编写声音、图像处理算法等内容。书中涉及的Python扩展库包括NumPy、SciPy、SymPy、matplotlib、Traits、TraitsUI、Chaco、TVTK、Mayavi、VPython、OpenCV等,涉及的应用领域包括数值运算、符号运算、二维图表、三维数据可视化、三维动画演示、图像处理以及界面设计等。
大家可以根据书中大量实例进行逐步深入学习,并且每个实例程序都有详尽的解释,因此大家一定要照着书本自己动手练一遍。此外,本书附有大量的图表和插图,力求减少长篇的理论介绍和公式推导,大家可以通过实例和数据学习,从而掌握理论知识。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
自学Python要按照什么样的学习顺序?
自学Python要按照什么样的学习顺序?首先要有一个详尽的学习大纲,对于学习Python的各种知识点要安排的详略得当,做到由易到难,循序渐进,才能长久的坚持学下去。除了基础的理论知识,项目实战也是自学Python必不可少的环节。下面小编来和大家详细讲讲自学Python的路线,感兴趣的小伙伴赶紧接着往下看吧!
11170
2019-10-30 20:10:39
如何利用python实现报表自动化?
如果能够实现报表自动化,那我们将节约不少的时间,更高效的完成工作内容。那么,如何利用python实现报表自动化呢?本文将介绍xlwt 、xlrd、xlutils的常用功能,xlwt写Excel时公式的应用以及xlwt写入特定目录来手把手带大家实现报表自动化。
5555
2020-03-23 10:59:42
CSS显示特性display属性的使用介绍
CSS显示特性display属性的使用介绍,display属性规定元素应该生成的框的类型,我们需要学习并掌握标签隐藏设置。
3750
2021-12-08 15:02:04
HTML的作用是什么?用来做什么?
HTML的作用是什么?用来做什么?HTML用来开发网页的是开发网页的语言。超文本标记语言是一种用于创建网页的标准标记语言,可以使用HTML来建立WEB站点,HTML运行在浏览器上由浏览器来解析。
9684
2021-12-10 16:00:06
JavaScript变量和数据类型有哪几种?
JavaScript变量和数据类型有哪几种?JavaScript 是一种弱类型语言,也就是说不需要指定变量的类型,js中有六种数据类型,包括五种基本数据类型和一种复杂数据类型(object)
3325
2021-12-27 14:10:21