新書推薦:
《
火枪与账簿:早期经济全球化时代的中国与东亚世界
》
售價:NT$
352.0
《
《全面与进步跨太平洋伙伴关系协定》国有企业条款研究
》
售價:NT$
449.0
《
银行业架构网络BIAN(全球数字化时代金融服务业框架)(数字化转型与创新管理丛书)
》
售價:NT$
449.0
《
金托邦:江湖中的沉重正义
》
售價:NT$
275.0
《
易经今解:释疑·解惑·见微
》
售價:NT$
403.0
《
东欧史(全二册)-“中间地带”的困境
》
售價:NT$
1010.0
《
虚拟资本:金融怎样挪用我们的未来
》
售價:NT$
352.0
《
刻意练习不生气
》
售價:NT$
179.0
編輯推薦:
本书展示了如何应用Python探究高中和大学低年级的数学主题,比如代数、统计、几何、概率以及微积分。你会从简单的项目学起,比如因式分解、二次方程求解,当你掌握了这些基础的知识后,就可以处理更复杂的项目了。
使用本书提供的方法探索数学和编程,将让你的整个数学和计算机科学学习过程变得有趣、实用。
你将从本书学到以下内容:
·用统计方法描述数据,用线图、条形图和散点图可视化数据
·用程序探究掷硬币、掷骰子和其他概率游戏中的集合理论和概率问题
·用Python的符号数学功能解决代数问题
·绘制几何图形,探索分形,如Barnsley蕨类植物、Sierpiński三角以及Mandelbrot集
·写程序求解导数与积分
本书还提供了有创意的编程挑战以及应用实例,可以帮助你把新学到的数学和编程技巧用于实践。你可以尝试解决各种有趣的问题,比如不等式求解、洗牌、画出子弹飞行过程中重力的影响、探究斐波那契数列与黄金分割之间的联系、利用向板子上投掷100000次“飞镖”来估计圆的面积等。
內容簡介:
本书将程序设计和数学巧妙地结合起来,从简单的项目开始,应用Python解决高中和大学低年级的数学问题,比如几何、概率、统计以及微积分等,为进一步学习更复杂的数学内容以及Python编程语言打下坚实的基础。本书也可作为Python初学者的入门读物,通过学习书中的示例程序和完成那些编程挑战,读者可以提高自己的编程能力和技巧。
關於作者:
关于作者
Amit Saha是一位曾在Red Hat和Sun Microsystems公司工作过的软件工程师。他创办并维护着Fedora Scientific,一个为科学和教育用户服务的Linux发行版。他也是Prentice Hall出版社《写下你的第一个程序》(Write Your First Program)一书的作者。
关于译者
许杨毅,现任商汤智慧城市事业群产品总监,曾是京东云高级总监,百度系统部和新浪业务运维负责人,UCloud运营平台部总监和产品市场部副总裁,资深的业务架构师、SRE专家、大数据工程和云计算架构顾问。曾翻译《贝叶斯思维:统计建模的Python学习法》一书。
刘旭华,现为中国农业大学理学院应用数学系副教授,北京理工大学博士,美国北卡罗来纳大学教堂山分校访问学者,主要从事数理统计、数据科学、数学与统计软件等领域的教学与科研工作,主持和参与多项国家自然科学基金、北京市自然科学基金项目。曾翻译《R语言统计入门(第2版)》《数据科学实战手册(第2版)》等图书。
目錄 :
第 1章 处理数字1
1.1 基本数学运算 1
1.2 标签:给数字命名 3
1.3 不同类型的数字 4
1.3.1 分数的操作 4
1.3.2 复数 5
1.4 获取用户输入 6
1.4.1 处理异常和无效输入 8
1.4.2 将分数和复数作为输入 9
1.5 编写一个数学计算程序 10
1.5.1 计算整数因子 10
1.5.2 生成乘法表 12
1.5.3 转换测量单位 14
1.5.4 求二次方程的根 16
1.6 本章内容小结 18
1.7 编程挑战 19
#1:偶数奇数自动售货机 19
#2:增强型乘法表生成器 19
#3:增强型单位转换器 19
#4:分数计算器 19
#5:为用户设置退出选项 20
第 2章 数据可视化 23
2.1 了解笛卡儿坐标平面 23
2.2 使用列表和元组 24
2.3 用matplotlib绘图 26
2.3.1 图上的标记 28
2.3.2 绘制纽约市的年平均气温 29
2.3.3 比较纽约市的月平均气温 31
2.3.4 自定义图形 34
2.3.5 保存图形 37
2.4 用公式绘图 37
2.4.1 牛顿万有引力定律 38
2.4.2 抛物运动 39
2.5 本章内容小结 44
2.6 编程挑战 44
#1:温度如何变化 45
#2:探索二次函数的可视化 45
#3:增强型抛物轨迹比较程序 46
#4:可视化你的支出 46
#5:探索斐波那契序列与黄金比例 48
第3章 数据的统计学特征 50
3.1 计算均值 50
3.2 计算中位数 52
3.3 计算众数并创建频数表 54
3.3.1 寻找最常见的元素 54
3.3.2 计算众数 55
3.3.3 创建频数表 57
3.4 测量离散度 59
3.4.1 计算一组数字的极差 59
3.4.2 计算方差和标准差 60
3.5 计算两个数据集之间的相关性 62
3.5.1 计算相关系数 63
3.5.2 高中成绩和大学入学考试成绩 64
3.6 散点图 67
3.7 从文件中读取数据 68
3.7.1 从文本文件中读取数据 69
3.7.2 从CSV文件中读取数据 70
3.8 本章内容小结 73
3.9 编程挑战 73
#1:更好的相关系数计算程序 73
#2:统计计算器 73
#3:用其他CSV数据做实验 73
#4:计算百分位数 74
#5:创建分组频数表 74
第4章 用SymPy包解代数和符号数学问题 76
4.1 定义符号和符号运算 76
4.2 使用表达式 78
4.2.1 分解和展开表达式 78
4.2.2 使表达式整齐输出 79
4.2.3 输出级数 80
4.2.4 用值替代符号 81
4.2.5 将字符串转换为数学表达式 84
4.2.6 表达式乘法 85
4.3 解方程 86
4.3.1 解二次方程 86
4.3.2 用其他变量求解一个变量 87
4.3.3 解线性方程组 88
4.4 用SymPy包绘图 88
4.4.1 绘制用户输入的表达式 91
4.4.2 多函数图形绘制 92
4.5 本章内容小结 94
4.6 编程挑战 94
#1:寻找因子 94
#2:图形方程求解器 94
#3:级数求和 94
#4:解单变量不等式 95
第5章 集合与概率 98
5.1 什么是集合? 98
5.1.1 构建集合 99
5.1.2 子集、超集与幂集 100
5.1.3 集合运算 102
5.2 概率 106
5.2.1 事件A或事件B发生的概率 108
5.2.2 事件A与事件B同时发生的概率 109
5.2.3 生成随机数 109
5.2.4 非均匀随机数 112
5.3 本章内容小结 114
5.4 编程挑战 114
#1:使用文氏图来可视化集合之间的关系 114
#2:大数定律 117
#3:掷多少次硬币会输光你的钱? 117
#4:洗牌 118
#5:估计一个圆的面积 118
第6章 绘制几何图形和分形 120
6.1 使用matplotlib的patches绘制几何图形 120
6.1.1 绘制一个圆 122
6.1.2 创建动画图形 123
6.1.3 抛物轨迹动画演示 125
6.2 绘制分形 127
6.2.1 平面上点的变换 127
6.2.2 绘制Barnsley蕨类植物 131
6.3 本章内容小结 134
6.4 编程挑战 134
#1:在正方形中填充圆形 134
#2:绘制Sierpiński三角 136
#3:探索Hénon函数 137
#4:绘制Mandelbrot集 138
第7章 解微积分问题 142
7.1 什么是函数? 142
7.1.1 函数的定义域和值域 143
7.1.2 常用数学函数概述 143
7.2 SymPy中的假设 144
7.3 计算函数极限 145
7.3.1 连续复利 147
7.3.2 瞬时变化率 147
7.4 函数求导 148
7.4.1 求导计算器 149
7.4.2 求偏导数 150
7.5 高阶导数和最大最小值点 150
7.6 用梯度上升法求全局最大值 153
7.6.1 梯度上升法的通用程序 156
7.6.2 关于初始值的附加说明 157
7.6.3 步长和epsilon的角色 158
7.7 求函数积分 160
7.8 概率密度函数 162
7.9 本章内容小结 164
7.10 编程挑战 164
#1:证明函数在一点处的连续性 165
#2:梯度下降法的实现 165
#3:两条曲线围成的面积 165
#4:计算曲线的长度 166
后 记 168
下一步可以探索的事情 168
欧拉项目 168
Python文档 168
参考书 169
获取帮助 169
附录A 软件安装 170
A.1 Microsoft Windows 171
升级SymPy 172
安装matplotlib-venn 172
启动Python Shell 172
A.2 Linux 172
升级SymPy 173
安装matplotlib-venn 173
启动Python Shell 173
A.3 Mac OS X 173
升级SymPy 176
安装matplotlib-venn 176
启动Python Shell 176
附录B Python主题概览 177
B.1 if __name__ == __main__ 177
B.2 列表推导(List Comprehensions) 178
B.3 字典数据结构 180
B.4 多个返回值(Multiple Return Values) 181
B.5 异常处理(Exception Handling) 183
指定多个异常类型 183
else代码块 184
B.6 在Python中读取文件 185
一次性读取所有行 186
指定一个文件名作为输入 186
读取文件时错误的处理 186
B.7 代码重用 189