书籍详情

Python大学教程:面向计算机科学和数据科学

Python大学教程:面向计算机科学和数据科学

作者:Python大学教程:面向计算机科学和数据科学

出版社:机械工业出版社

出版时间:2022-03-01

ISBN:9787111717911

定价:¥149.00

购买这本书可以去
内容简介
  本书提供了一种独特的方法来讲解Python编程入门,内容符合新的ACM/IEEECS和相关的计算课程倡议,以及由美国国家科学基金会赞助的数据科学本科课程。内容涵盖了新的主题和应用的覆盖面,模块化架构使教师能够方便地调整文本,适应课程需求。通过本书,你将学习:538个案例研究,471道练习题和项目,557道自我测验题。基于IPython和Jupyter Notebook的即时反馈。问题求解、算法开发、控制语句、函数等基础知识。列表、元组、字典、集合、Numpy数组、pandas Series和DataFrame。2D/3D的静态、动态和交互式可视化。字符串、文本文件、JSON序列化、CSV、异常。过程式、函数式和面向对象的程序设计方法。“数据科学入门”:基础统计、模拟、动画、随机变量、数据整理、回归。隐私、安全、伦理、可重现、透明。AI、大数据和云数据科学案例研究:NLP、Twitter数据挖掘、IBM Watson、机器学习、深度学习、计算机视觉、Hadoop、Spark、NoSQL、IoT。开源库:NumPy、pandas、Matplotlib、Seaborn、Folium、SciPy、NLTK、TextBlob、spaCy、Textatistic、Tweepy、Scikit-learn、Keras、PubNub等。
作者简介
  保罗·戴特尔(Paul Deitel) Deitel&Associates公司首席执行官兼首席技术官,毕业于麻省理工学院,在计算机领域拥有38年的经验。他自1992年以来就为软件开发人员教授专业课程,为包括思科、IBM、西门子、戴尔、NASA、北电网络在内的全球企业客户提供了数百门编程课程。哈维·戴特尔(Harvey Deitel) Deitel&Associates公司董事长兼首席战略官,在计算机领域拥有58年的经验。他在麻省理工学院获得理学学士学位和硕士学位,在波士顿大学获得博士学位。在1991年创立Deitel&Associates公司之前,他已经获得了波士顿大学的终身职位并担任计算机科学系主任。Deitel品牌的出版物赢得了国际上的广泛认可,并被翻译为日语、德语、汉语等100多种语言出版。通过与Pearson/Prentice Hall 44年的合作,Deitel&Associates公司以印刷物和电子书的形式出版了前沿的编程教科书和专业书籍,发布了前沿的编程方面的LiveLessons视频课程、Safari-Live在线研讨会和Revel交互式多媒体课程。如果你需要联系Deitel&Associates公司和作者,或者希望给有讲师指导的现场培训课程提出建议,请发送电子邮件至deitel@deitel.com。希望了解更多关于Deitel现场企业培训的信息,请访问http://www.deitel.com/training。希望购买Deitel书籍的个人客户,请访问https://www.amazon.com/。公司、政府、军队和学术机构的大宗订单请直接与Pearson联系。希望了解更多信息,请访问https://www.informit.com/store/sales.aspx。
目录
译者序
前言
阅读前的准备工作
第1章 计算机和Python简介1
1.1 简介1
1.2 硬件和软件2
1.2.1 摩尔定律3
1.2.2 计算机组成3
1.3 数据层级结构4
1.4 机器语言、汇编语言和高级语言7
1.5 对象技术简介8
1.6 操作系统10
1.7 Python13
1.8 库14
1.8.1 Python标准库15
1.8.2 数据科学库15
1.9 其他流行的编程语言16
1.10 实践练习:使用IPython和
 Jupyter Notebook17
1.10.1 将IPython的交互式模式
 当作计算器使用17
1.10.2 使用IPython解释器执行
 Python程序19
1.10.3 在Jupyter Notebook中
 编写和执行代码20
1.11 互联网和万维网24
1.11.1 互联网:网络的网络25
1.11.2 万维网:使互联网变得对
 用户友好25
1.11.3 云计算25
1.11.4 物联网26
1.12 软件技术27
1.13 大数据有多大28
1.13.1 大数据分析32
1.13.2 数据科学和大数据正在
 改变世界:用例33
1.14 案例研究:一个大数据移动
 应用34
1.15 数据科学入门:人工智能—
 计算机科学和数据科学的交叉
 学科35
第2章 Python程序设计概述41
2.1 简介41
2.2 变量和赋值语句41
2.3 算术运算43
2.4 print函数、单引号字符串和
 双引号字符串47
2.5 三引号字符串48
2.6 从用户处获得输入50
2.7 决策:if语句和比较操作符52
2.8 对象和动态类型56
2.9 数据科学入门:描述性统计学
 基础知识58
2.10 小结60
第3章 控制语句和程序开发63
3.1 简介63
3.2 算法63
3.3 伪代码64
3.4 控制语句64
3.5 if语句66
3.6 if...else和if...elif...else
 语句69
3.7 while语句73
3.8 for语句74
3.8.1 可迭代变量、列表和
 迭代器75
3.8.2 内置range函数76
3.9 增广赋值76
3.10 程序开发:序列控制重复77
3.10.1 需求说明78
3.10.2 算法的伪代码形式78
3.10.3 Python中算法的编码79
3.10.4 格式化字符串79
3.11 程序开发:卫士控制重复80
3.12 程序开发:嵌套控制语句83
3.13 内置函数range:深入审视87
3.14 使用Decimal类型表达货币
 总量88
3.15 break和continue语句91
3.16 布尔操作符and、or和not92
3.17 数据科学入门:趋中度量—
 平均数、中位数、众数95
3.18 小结96
第4章 函数102
4.1 简介102
4.2 函数的定义102
4.3 多参数函数105
4.4 随机数生成106
4.5 案例研究:碰运气游戏109
4.6 Python标准库112
4.7 math模块函数113
4.8 IPython的Tab补全114
4.9 缺省形参值115
4.10 关键字实参116
4.11 任意实参表117
4.12 方法:属于对象的函数118
4.13 作用域规则118
4.14 import:深入审视120
4.15 函数的实参传递:深入讨论122
4.16 函数调用栈124
4.17 函数式程序设计126
4.18 数据科学入门:离中度量127
4.19 小结129
第5章 序列:列表和元组133
5.1 简介133
5.2 列表133
5.3 元组138
5.4 序列解包140
5.5 序列切片143
5.6 del语句146
5.7 给函数传递列表147
5.8 列表排序148
5.9 序列搜索150
5.10 其他列表方法152
5.11 用列表模拟栈154
5.12 列表解析155
5.13 生成器表达式157
5.14 过滤器、映射和化简158
5.15 其他序列处理函数160
5.16 二维列表162
5.17 数据科学入门:模拟和静态
 可视化166
5.17.1 掷600、60 000和6 000 000
    次骰子的简单图示166
5.17.2 掷骰实验的频数和百分比
 的可视化167
5.18 小结174
第6章 字典和集合182
6.1 简介182
6.2 字典182
6.2.1 创建字典183
6.2.2 遍历字典184
6.2.3 基本字典操作184
6.2.4 字典方法keys和
 values186
6.2.5 字典比较188
6.2.6 样例:学生成绩字典188
6.2.7 样例:词频统计189
6.2.8 字典方法update191
6.2.9 字典解析192
6.3 集合192
6.3.1 集合比较194
6.3.2 集合的数学操作196
6.3.3 集合的可变操作符和
 方法197
6.3.4 集合解析199
6.4 数据科学入门:动态可视化199
6.4.1 了解动态可视化199
6.4.2 实现动态可视化202
6.5 小结204
第7章 使用NumPy进行面向
 数组的编程208
7.1 简介208
7.2 从已有数据中创建array209
7.3 array属性210
7.4 用特定值填充array212
7.5 从值域中创建array212
7.6 列表和array的性能:引入
 %timeit214
7.7 array操作符216
7.8 NumPy计算方法218
7.9 普适函数220
7.10 索引和切片221
7.11 视图:浅拷贝223
7.12 深拷贝225
7.13 重塑和转置226
7.14 数据科学入门:pandas Series
 和DataFrame229
7.14.1 pandas Series229
7.14.2 DataFrame233
7.15 小结241
第8章 字符串:深入审视247
8.1 简介247
8.2 格式化字符串248
8.2.1 表示类型248
8.2.2 域宽和对齐249
8.2.3 数值格式化250
8.2.4 字符串的format
 方法251
8.3 拼接和重复字符串252
8.4 删除字符串的空白符253
8.5 字符大小写转换254
8.6 字符串的比较操作符255
8.7 子串搜索255
8.8 子串替换257
8.9 字符串拆分和合并257
8.10 字符和字符测试方法260
8.11 原生字符串260
8.12 正则表达式简介261
8.12.1 re模块和fullmatch
 函数262
8.12.2 子串替换和字符串拆分265
8.12.3 其他搜索函数和匹配
 访问266
8.13 数据科学入门:pandas、正则
 表达式和数据整理269
8.14 小结273
第9章 文件和异常278
9.1 简介278
9.2 文件279
9.3 文本文件处理279
9.3.1 向文本文件中写入数据:
 with语句简介280
9.3.2 从文本文件中读取数据281
9.4 更新文本文件283
9.5 使用JSON进行序列化285
9.6 使用pickle进行序列化和
 反序列化存在的安全问题288
9.7 关于文件的其他补充288
9.8 异常处理289
9.8.1 除0异常和非法输入289
9.8.2 try语句290
9.8.3 在一个except子句中
 捕获多个异常293
9.8.4 函数或方法能够抛出什么
 异常293
9.8.5 try代码组应该封装什么
 代码293
9.9 finally子句293
9.10 显式抛出异常296
9.11 (可选)栈展开和回溯296
9.12 数据科学入门:CSV文件综合
 处理298
9.12.1 Python标准库模块
 csv298
9.12.2 将CVS文件读入pandas
 DataFrame301
9.12.3 读取Titanic disaster
 数据集302
9.12.4 对Titanic disaster数据集
 进行简单的数据分析303
9.12.5 乘客年龄直方图304
9.13 小结305
第10章 面向对象程序设计311
10.1 简介311
10.2 自定义Account类313
10.2.1 Account类的试用313
10.2.2 Account类的定义314
10.2.3 组合:对象引用作为
 类的成员316
10.3 属性访问控制317
10.4 用于访问数据的属性318
10.4.1 Time类的试用318
10.4.2 Time类的定义320
10.4.3 Time类定义的设计
 说明324
10.5 “私有”属性模拟325
10.6 案例研究:洗牌和切牌327
10.6.1 Card和DeckofCards
 类的试用327
10.6.2 Card类:引入类属性328
10.6.3 DeckOfCards类330
10.6.4 使用Matplotlib显示
 卡牌图像332
10.7 继承:基类和子类335
10.8 构建继承层次:引入多态性337
10.8.1 基类Commission-
 Employee337
10.8.2 子类SalariedCom-
 missionEmployee340
10.8.3 CommissionEmployee
 和SalariedCommis-
 sionEmployee的
 多态处理343
10.8.4 基于对象和面向对象
 程序设计的补充344
10.9 鸭子类型和多态344
10.10 操作符重载346
10.10.1 Complex类的试用346
10.10.2 Complex类的定义347
10.11 异常类层次和自定义异常处理349
10.12 有名元组350
10.13 Python 3.7的新数据类简介351
10.13.1 创建Card数据类352
10.13.2 使用Card数据类354
10.13.3 数据类相较有名元组的
 优势356
10.13.4 数据类相较传统类的
 优势357
10.14 使用文档字符串和doctest
 进行单元测试357
10.15 命名空间和作用域361
10.16 数据科学入门:时间序列和
 简单线性回归364
10.17 小结372
第11章 计算机科学思维:递归、
 搜索、排序和大O380
11.1 简介380
11.2 阶乘381
11.3 递归阶乘样例381
11.4 递归斐波那契数列样例383
11.5 递归与迭代386
11.6 搜索与排序387
11.7 线性搜索388
11.8 算法的效率:大O389
11.9 二分搜索390
11.9.1 二分搜索实现391
11.9.2 二分搜索的大O表示393
11.10 排序算法394
11.11 选择排序394
11.11.1 选择排序实现394
11.11.2 实用工具函数
 print_pass396
11.11.3 选择排序的大O表示396
11.12 插入排序397
11.12.1 插入排序实现397
11.12.2 插入排序的大O表示399
11.13 归并排序399
11.13.1 归并排序实现400
11.13.2 归并排序的大O表示403
11.14 搜索和排序算法的大O总结404
11.15 可视化算法404
11.15.1 生成器函数406
11.15.2 实现选择排序动画407
11.16 小结412
第12章 自然语言处理418
12.1 简介418
12.2 TextBlob419
12.2.1 创建一个TextBlob421
12.2.2 语料化:文本的断句和
 取词421
12.2.3 词性标记422
12.2.4 提取名词短语423
12.2.5 使用TextBlob的默认情
 感分析器进行情感分析423
12.2.6 使用NaiveBayesAnalyzer
 进行情感分析425
12.2.7 语言检测和翻译426
12.2.8 变形:复数化和单数化428
12.2.9 拼写检查和更正429
12.2.10 规范化:词干提取和
 词形还原430
12.2.11 词频430
12.2.12 从WordNet中获取定
 义、同义词和反义词431
12.2.13 删除停止词433
12.2.14 n-gram模型435
12.3 用柱状图和词云进行词频
 可视化436
12.3.1 用pandas进行词频
 可视化436
12.3.2 用词云进行词频可视化439
12.4 使用Textatistic进行可读性
 评估441
12.5 使用spaCy进行命名实体识别443
12.6 使用spaCy进行相似性检测445
12.7 其他NLP库和工具446
12.8 机器学习和深度学习的自然
 语言应用447
12.9 自然语言数据集447
12.10 小结448
第13章 Twitter数据挖掘452
13.1 简介452
13.2 Twitter API概况454
13.3 创建一个Twitter账户455
13.4 获取Twitter凭证—创建
 一个app455
13.5 推文中有什么457
13.6 Tweepy460
13.7 通过Tweepy与Twitter进行
 身份验证460
13.8 从Twitter账户中获取信息461
13.9 Tweepy Cursor简介:获取一个
 账户的关注者和好友463
13.9.1 确定一个账户的关注者464
13.9.2 确定一个账户的关注
 对象466
13.9.3 获取一个用户的近期
 推文466
13.10 搜索近期推文468
13.11 趋势发现:Twitter趋势API470
13.11.1 热门话题的地点470
13.11.2 获取热门话题列表471
13.11.3 根据热门话题创建
 词云473
13.12 分析推文前的清洗/预处理
 过程474
13.13 Twitter流处理API476
13.13.1 创建StreamListener
 的子类476
13.13.2 流处理初始化478
13.14 推文情感分析480
13.15 地理编码与地图显示484
13.15.1 推文的获取和地图显示485
13.15.2 tweetutilities.py
 中的实用工具函数488
13.15.3 LocationListener类490
13.16 存储推文的方法491
13.17 Twitter和时间序列492
13.18 小结492
第14章 IBM Watson和认知计算496
14.1 简介496
14.2 IBM云账户和云控制台498
14.3 Watson服务498
14.4 额外的服务和工具501
14.5 Watson开发者云Python SDK503
14.6 案例研究:旅行者随身翻译
 应用504
14.6.1 运行前准备504
14.6.2 运行应用505
14.6.3 SimpleLanguage-
 Translator.py脚本
 详细解读506
14.7 Watson资源515
14.8 小结517
第15章 机器学习:分类、回归和
 聚类520
15.1 简介520
15.1.1 scikit-learn521
15.1.2 机器学习的类型522
15.1.3 scikit-learn自带的数据集523
15.1.4 典型数据科学研究步骤524
15.2 案例研究:用k近邻算法和Digits
 数据集进行分类(第1部分)524
15.2.1 k近邻算法525
15.2.2 加载数据集526
15.2.3 可视化数据530
15.2.4 将数据分为训练集和
 测试集532
15.2.5 创建模型533
15.2.6 训练模型533
15.2.7 预测数字类别534
15.3 案例研究:用k近邻算法和Digits
 数据集进行分类(第2部分)535
15.3.1 模型准确度指标536
15.3.2 k折交叉验证539
15.3.3 运行多个模型以选择
 模型540
15.3.4 超参数调整541
15.4 案例研究:时间序列和简单
 线性回归542
15.5 案例研究:基于加利福尼亚
 房价数据集的多元线性回归547
15.5.1 加载数据集547
15.5.2 使用pandas探索数据549
15.5.3 可视化特征551
15.5.4 将数据分为训练集和
 测试集554
15.5.5 训练模型555
15.5.6 测试模型556
15.5.7 可视化预测房价和期望
 房价556
15.5.8 回归模型指标557
15.5.9 选择模型558
15.6 案例研究:无监督学习(第1
 部分)—降维559
15.7 案例研究:无监督学习(第2
 部分)—k均值聚类562
15.7.1 加载Iris数据集563
15.7.2 探索Iris数据集:使用
 pandas进行描述性统计565
15.7.3 使用Seaborn的pairplot
 可视化数据集566
15.7.4 使用KMeans评估器569
15.7.5 主成分分析降维570
15.7.6 选择聚类评估器572
15.8 小结574
第16章 深度学习581
16.1 简介581
16.1.1 深度学习应用583
16.1.2 深度学习演示583
16.1.3 Keras资源584
16.2 Keras内置数据集584
16.3 自定义Anaconda环境585
16.4 神经网络586
16.5 张量587
16.6 视觉处理的卷积神经网络和使用
 MNIST数据集的多分类器589
16.6.1 加载MNIST数据集590
16.6.2 数据观察591
16.6.3 数据准备592
16.6.4 构造神经网络594
16.6.5 训练和评估模型602
16.6.6 保存和加载模型606
16.7 用TensorBoard进行神经网络
 训练的可视化607
16.8 ConvnetJS:基于浏览器的深度
 学习训练和可视化609
16.9 序列处理的循环神经网络:使用
 IMDb数据集进行情感分析610
16.9.1 加载IMDb电影点评
 数据集611
16.9.2 数据观察612
16.9.3 数据准备614
16.9.4 构造神经网络615
16.9.5 训练和评估模型618
16.10 深度学习模型调参618
16.11 ImageNet上预训练的卷积
 神经网络模型619
16.12 强化学习621
16.12.1 Deep Q-Learning621
16.12.2 OpenAI Gym622
16.13 小结622
第17章 大数据:Hadoop、Spark、
 NoSQL和IoT629
17.1 简介629
17.2 关系型数据库和结构化查询
 语言632
17.2.1 books数据库634
17.2.2 SELECT查询637
17.2.3 WHERE子句638
17.2.4 ORDER BY子句639
17.2.5 合并来自多个表的数据:
 INNER JOIN640
17.2.6 INSERT INTO语句641
17.2.7 UPDATE语句642
17.2.8 DELETE FROM语句642
17.3 NoSQL和NewSQL大数据
 数据库:导览644
17.3.1 NoSQL键值数据库644
17.3.2 NoSQL文档数据库644
17.3.3 NoSQL列数据库645
17.3.4 NoSQL图数据库645
17.3.5 NewSQL数据库646
17.4 案例研究:MongoDB JSON
 文档数据库647
17.4.1 创建MongoDB Atlas
 集群647
17.4.2 将tweet注入
 MongoDB648
17.5 Hadoop656
17.5.1 Hadoop概述656
17.5.2 用MapReduce汇总Romeo
 and Juliet的词长度659
17.5.3 在Microsoft Azure
 HDInsight上创建
 Apache Hadoop集群659
17.5.4 Hadoop Streaming660
17.5.5 实现mapper661
17.5.6 实现reducer661
17.5.7 准备运行MapReduce
 示例662
17.5.8 运行MapReduce
 作业663
17.6 Spark666
17.6.1 Spark概述666
17.6.2 Docker和Jupyter
 Docker栈667
17.6.3 使用Spark进行词
 统计669
17.6.4 在Microsoft Azure上运行
 Spark Word Count672
17.7 Spark流:使用pyspark-
 notebook Docker栈进行
 Twitter哈希标注统计675
17.7.1 将tweet注入套接字675
17.7.2 tweet哈希标注汇总:
 Spark SQL简介678
17.8 物联网和仪表盘684
17.8.1 发布和订阅685
17.8.2 用Freeboard仪表盘可视化
 PubNub样本实时流685
17.8.3 用Python模拟联网的
 恒温器687
17.8.4 使用freeboard.io创建
 仪表盘689
17.8.5 创建Python PubNub
 订阅器690
17.9 小结694
猜您喜欢

读书导航