新書推薦:
《
罗马政治观念中的自由
》
售價:NT$
230.0
《
中国王朝内争实录:宠位厮杀
》
售價:NT$
281.0
《
凡事发生皆有利于我(这是一本读了之后会让人运气变好的书”治愈无数读者的心理自助经典)
》
售價:NT$
203.0
《
未来特工局
》
售價:NT$
254.0
《
高术莫用(十周年纪念版 逝去的武林续篇 薛颠传世之作 武学尊师李仲轩家世 凸显京津地区一支世家的百年沉浮)
》
售價:NT$
250.0
《
英国简史(刘金源教授作品)
》
售價:NT$
449.0
《
便宜货:廉价商品与美国消费社会的形成
》
售價:NT$
352.0
《
读书是一辈子的事(2024年新版)
》
售價:NT$
352.0
|
編輯推薦: |
Python语言拥有丰富的针对数学的扩展库:NumPy库支持高维度矩阵运算,内含大量针对数组运算的函数。Matplotlib为Python语言提供了绘图扩展;SciPy库支持线性代数、微积分、概率统计等;SymPy库使得Python语言能够支持符号计算。本书从Python的基本用法到数学问题的背景、原理及实际用法等都介绍得简明易懂。在熟悉Python的基本语法结构之后,如果能够熟练掌握这些库的使用方法,则在日后的工作和学习中,完全可以使用Python来处理遇到的数学问题。
|
內容簡介: |
本书主要介绍如何使用Python处理数学问题。内容涉及代数、统计、概率和微积分等方面。 本书第1~4章主要讲解Python编程的基本知识,第5~12章主要是介绍Python用于处理数学问题的第三方扩展库的使用,包括NumPy、Scipy、Matplotlib和SymPy。第5章Python绘图是后续很多章节的基础,请读者务必要首先熟悉这一章的内容。第6章面向对象编程主要讲解什么是面向对象的程序设计,Python是一种面向对象的程序设计语言,掌握面向对象的概念对于理解Python程序、编写出效率更高的Python代码会很有帮助。NumPy是Python科学计算的基础,第7章详细讲解NumPy的使用方法。第8章的内容相对比较独立,主要介绍Python在符号计算方面的应用。第9和第10章是关于概率统计的内容,会用到第5~7章的知识。第11章是关于分形的介绍,读者可以了解到如何使用Python绘制分形。第12章是讲解Python中的异常处理。 本书适合高等院校及培训机构相关专业的参考用书,以及对如何使用Python处理数学问题感兴趣的初学者阅读。
|
關於作者: |
张骞,北京航空航天大学硕士,资深软件工程师。17年软件开发经验。先后数家(内资/外资)大型通信企业担任高级软件开发工程师,精通C/C 、Python语言编程。现从事数据挖掘与分析方面的研究工作,同时致力于编程技术的普及和推广。
|
目錄:
|
第1章Spyder IDE
1.1安装Spyder
1.2使用Spyder
1.3升级Spyder
1.4使用Spyder在线版
1.5本章小结
第2章用Python处理计算公式
2.1将Python作为计算器
2.1.1算术运算
2.1.2关系运算
2.1.3赋值运算
2.1.4逻辑运算
2.1.5位运算
2.2编写Python脚本
2.2.1定义变量
2.2.2变量名
2.2.3变量类型
2.2.4表达式
2.2.5语句
2.2.6注释
2.2.7格式化输出
2.3编程陷阱
2.4本章小结
2.5练习
第3章函数与分支
3.1使用函数
3.2Python Math模块
3.2.1常数
3.2.2算术函数
3.2.3Math库中其他的重要数学函数
3.3定义函数
3.4括号匹配
3.5入参和局部变量
3.5.1参数默认值
3.5.2关键字参数
3.5.3局部变量和全局变量
3.6函数返回值
3.7Lambda表达式
3.8条件分支
3.9程序验证
3.9.1编写测试函数
3.9.2使用pytest
3.10本章小结
3.11练习
第4章循环
4.1while循环
4.2使用列表存储数据
4.2.1创建列表
4.2.2列表索引
4.2.3列表的基本操作
4.2.4列表对象支持的方法
4.3for循环
4.4中止当前循环
4.5列表推导式(list comprehension)
4.5.1range类型
4.5.2使用for循环填充列表
4.5.3数列求和
4.5.4更改列表中的元素
4.5.5创建列表的简便方式
4.5.6zip()函数
4.6嵌套列表
4.7Spyder调试代码
4.8Tuples
4.9求方程近似解
4.9.1二分法
4.9.2牛顿迭代法
4.10本章小结
4.11练习
第5章Python绘图
5.1安装Matplotlib
5.2绘制简单图形
5.3北京、上海和广州三地的平均温度
5.4绘制函数图形
5.5Matplotlib对象层次结构
5.5.1Line2D对象
5.5.2添加文本
5.5.3多个子图(Axes)
5.6字典(Dictionary)类型
5.7本章小结
5.8练习
第6章类和面向对象编程
6.1代表数学公式的类
6.2类的通用格式
6.3受保护的类属性
6.4对象属性和类属性
6.5特殊方法
6.5.1__call__()
6.5.2__del__()
6.5.3__str__()
6.5.4__repr__()
6.5.5__abs__()
6.5.6数学运算的特殊方法
6.6Python的类和静态方法
6.7如何知道类的内容
6.8类的测试函数
6.9类层次结构和继承
6.10使用OOP方法的实例
6.10.1螺线
6.10.2比例数
6.11本章小结
6.12练习
第7章NumPy与矩阵
7.1NumPy安装
7.1.1使用pip 安装
7.1.2Linux 下安装
7.1.3安装验证
7.2NumPy数组对象
7.2.1创建数组对象
7.2.2修改数组形状
7.2.3单位矩阵
7.3NumPy数据类型
7.3.1基本数据类型
7.3.2长度确定的数据类型
7.3.3字节序
7.3.4结构化数据
7.4操作数组
7.4.1数组切片和索引
7.4.2迭代数组
7.4.3基本运算
7.4.4位操作
7.4.5布尔运算
7.4.6NumPy广播(Broadcast)
7.4.7数组排序
7.4.8统计运算
7.5用NumPy处理代数问题
7.5.1向量化计算
7.5.2向量和矩阵
7.5.3用NumPy求解线性方程组
7.5.4插值和拟合
7.6本章小结
7.7练习
第8章SymPy与符号计算
8.1安装和升级SymPy
8.2配置SymPy
8.3定义符号
8.3.1变量符号
8.3.2数值符号
8.3.3函数对象
8.4符号运算
8.4.1数的运算
8.4.2表达式展开
8.4.3表达式化简
8.4.4表达式求值
8.4.5表达式连加
8.4.6表达式连乘
8.4.7因式分解
8.4.8逻辑运算
8.5微积分
8.5.1极限
8.5.2级数展开
8.5.3微分
8.5.4积分
8.5.5路径积分
8.5.6积分变换
8.6线性代数
8.6.1矩阵
8.6.2方程
8.7绘图
8.8本章小结
8.9练习
第9章统计分析
9.1安装Pandas和SciPy
9.2基本概念
9.2.1平均值
9.2.2加权平均值
9.2.3调和平均值
9.2.4几何平均值
9.2.5中位值
9.2.6众数
9.2.7方差
9.2.8标准差
9.2.9偏度
9.2.10百分位数
9.2.11范围
9.3描述性统计
9.4数据相关性
9.4.1协方差
9.4.2相关系数
9.5从文件读取数据
9.5.1处理CSV文件
9.5.2对象化处理数据
9.6绘制统计图
9.6.1上海车牌竞拍
9.6.2上海的历史降雨量
9.7本章小结
9.8练习
第10章概率统计
10.1概率论
10.1.1随机试验
10.1.2样本空间
10.1.3概率
10.1.4离散型随机变量
10.1.5连续型随机变量
10.2数理统计
10.2.1统计量
10.2.2大数定理
10.2.3中心极限定理
10.2.4贝叶斯公式
10.3本章小结
10.4练习
第11章分形
11.1Koch曲线
11.2递归
11.3曼德勃罗集合
11.4分形树叶
11.5LSystem
11.6本章小结
11.7练习
第12章异常处理
12.1Python异常回溯
12.2Python异常类型
12.2.1语法型错误
12.2.2逻辑型错误
12.3抛出异常
12.4捕获异常
12.5本章小结
|
內容試閱:
|
前言随着信息技术的发展,我们经常会收发电子邮件、网购、追剧、玩电子游戏等,但这是否意味着我们非常熟悉身边的这些新技术呢?虽然每天都要和各种各样的数字媒体打交道,但是有能力自己创建并分享数字内容的人不多。随着技术的进步,不远的将来,生活在这个“数字世界”的“数字原住民”应既是消费者也是生产者。
大部分人可能认为编写计算机程序是专业性极强的工作,是少数人才可以完成的任务。其实并非如此。学习计算机语言就好比学习一门自然语言、游泳或者驾驶汽车,大多数人稍微花点时间便能够掌握。
计算机语言是一种特殊形式的语言,它可以被用来定义计算机程序,向计算机发出指令。计算机科学发展至今,产生了600多种计算机语言,至今仍流行的语言有20多种,新的计算机语言也在不断产生。它们可分为三类: 机器语言、汇编语言和高级语言。这里“高级”仅指语言发展的阶段,并不是说它的功能较前者更强。对于初学者来讲,应该从高级语言入门,因为计算机高级语言接近于数学语言或人类自然语言,学习起来较为容易。
一般情况下,学习计算机编程有如下一些困难:
(1) 编程语言的语法规则晦涩难懂。
(2) 语言教程中所涉及的例子远离我们的日常生活经验。
因此,入门学习的计算机语言需要满足以下两个条件:
(1) 语法规则简单。
(2) 学到的知识可以很快应用到实践中。
那么,Python能够满足笔者提出的这两个条件吗?Python的语法规则相对于C 或Java简单,能够满足条件1。Python拥有丰富的内建和第三方扩展库,因此有着丰富的应用方式,也能够满足条件2。在Python语言的众多应用中,处理数学问题无疑是非常热门和有实用价值的应用方向,因此,笔者在学习Python编程的过程中,便萌生了编写一本书,介绍如何使用Python处理数学问题的念头。
Python语言拥有丰富的针对数学的扩展库: NumPy库支持高维度矩阵运算,内含大量针对数组运算的函数; Matplotlib为Python语言提供了绘图扩展; SciPy库支持线性代数、微积分、概率统计等; SymPy库使得Python语言能够支持符号计算。在熟悉Python的基本语法结构之后,如果能够熟练掌握这些库的使用方法,则在日后的工作和学习中完全可以使用Python来处理遇到的数学问题。
本书首先简要介绍了Python的基本语法,涵盖了处理数学问题时需要用到的基本语法。接下来详细介绍了第三方库的使用方法。相关章节如果继续深入,则完全可以独立成书。特别是关于如何使用Python进行数值计算,目前已有多本非常优秀的著作或译作出版。希望本书中的相关章节能帮助读者熟悉如何使用Python的数值运算库。这样,在将来阅读相关图书时,可以专注于算法而不会受困于Python语法和相应库的使用方法。
一本书的编纂并非易事。很多自以为已经掌握的概念,在编写例程时,会突然变得很生疏。所幸,Python的世界是开放的,很多问题都能够通过互联网找到答案,因此,当读者在遇到本书中未曾涉及的概念时,可以通过互联网寻求帮助,笔者相信读者一定能够找到满意的答案。由于本人能力的限制,书中难免存有舛误,欢迎读者指正。
要特别感谢清华大学出版社的赵佳霓编辑,她在本书的编辑过程中给予笔者大量帮助。此外,还要感谢曾庆华、韩雷、曹睿、刘亚辉,感谢他们抽出宝贵的时间通读本书的初稿,指出错误并给出了修改建议。
张骞
2022年1月
本书源代码
|
|