在线客服
扫描二维码
下载博学谷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开发岗位人才难求的问题,博学谷在线IT培训平台推出了面向零基础学习者的Python+人工智能在线就业班,该套课程与时俱进,根据市场最前沿的技术,每年都会不断对课程进行升级更新。下面我们就来了解一下,Python线上培训课程的四大升级更新!
4173
2020-05-21 16:38:37
如何用Django框架搭建博客系统?
Django目前已经成为Web开发者的首选框架, 作为一款开放源代码的PythonWeb 应用框架,Django采用了MVT 软件设计模式。使用Django架构,我们不需要多少代码就可以写出一个完整的应用程序。那么,如何用Django框架搭建博客系统呢?下面将为大家分享一个实战教程,手把手从零开始教大家如何搭建博客系统。
3815
2020-06-18 14:58:27
Django能开发哪些类型的网站
开发者采用Django框架,不需要写太多的代码就能完成一个网站的应用程序。因此Django成为目前Python开发者首选的Web开发框架。目前使用Django框架能开发哪些类型的网站呢?
4030
2020-08-24 11:41:59
CSS是什么?起什么作用?
CSS是(Cascading Style Sheets)层叠样式表的缩写简称样式表。网页设计者使用CSS可以定义元素的样式包括字体,颜色及其它的高级样式。做前端页面开发必须要知道CSS的作用及使用方法。
4725
2021-12-07 16:10:29
HTTP 请求报文结构是什么?代表什么?
HTTP 请求报文结构是什么?代表什么?学习HTTP我们需要掌握HTTP请求报文的结构,HTTP最常见的请求报文有两种分别是GET 方式的请求报文和POST 方式的请求报文。
3132
2021-12-16 10:59:35