使用本书How to Use the Book
丛书资源
鸢尾花书提供的配套资源如下:
◄ 纸质图书。
◄ 每章提供思维导图,全书图解海报。
◄ Python代码文件,直接下载运行,或者复制、粘贴到Jupyter运行。
◄ Python代码中包含专门用Streamlit开发数学动画和交互App的文件。
◄ 微课视频,强调重点、讲解难点、聊聊天。
本书约定
书中为了方便阅读以及查找配套资源,特别设计了如下标识。
微课视频
本书配套微课视频均发布在B站——生姜DrGinger。
◄ https://space.bilibili.com/513194466
微课视频是以“聊天”的方式,和大家探讨某个数学话题的重点内容,讲解代码中可能遇到的难点,甚至侃侃历史、说说时事、聊聊生活。
本书配套微课视频的目的是引导大家自主编程实践、探究式学习,并不是“照本宣科”。
纸质图书上已经写得很清楚的内容,视频课程只会强调重点。需要说明的是,图书内容不是视频的“逐字稿”。
App开发
本书配套多个用Streamlit开发的App,用来展示数学动画、数据分析、机器学习算法。
Streamlit是个开源的Python库,能够方便快捷地搭建、部署交互型网页App。Streamlit简单易用,很受欢迎。Streamlit兼容目前主流的Python数据分析库,比如NumPy、Pandas、Scikit-learn、PyTorch、TensorFlow等等。Streamlit还支持Plotly、Bokeh、Altair等交互可视化库。
本书中很多App设计都采用Streamlit+Plotly方案。此外,本书专门配套教学视频手把手和大家一起做App。
大家可以参考如下页面,更多了解Streamlit:
◄ https://streamlit.io/gallery
◄ https://docs.streamlit.io/library/api-reference
实践平台
本书作者编写代码时采用的IDE(Integrated Development Environment)是Spyder,目的是给大家提供简洁的Python代码文件。
但是,建议大家采用JupyterLab或Jupyter Notebook作为鸢尾花书配套学习工具。
简单来说,Jupyter集合“浏览器+编程+文档+绘图+多媒体+发布”众多功能于一身,非常适合探究式学习。
运行Jupyter无须IDE,只需要浏览器。Jupyter容易分块执行代码。Jupyter支持inline打印结果,直接将结果图片打印在分块代码下方。Jupyter还支持很多其他语言,如R和Julia。
使用Markdown文档编辑功能,可以编程同时写笔记,不需要额外创建文档。在Jupyter中插入图片和视频链接都很方便,此外还可以插入Latex公式。对于长文档,可以用边栏目录查找特定内容。
Jupyter发布功能很友好,方便打印成HTML、PDF等格式文件。
Jupyter也并不完美,目前尚待解决的问题有几个:Jupyter中代码调试不是特别方便。Jupyter没有variable explorer,可以inline打印数据,也可以将数据写到CSV或Excel文件中再打开。Matplotlib图像结果不具有交互性,如不能查看某个点的值或者旋转3D图形,此时可以考虑安装(jupyter matplotlib)。注意,利用Altair或Plotly绘制的图像支持交互功能。对于自定义函数,目前没有快捷键直接跳转到其定义。但是,很多开发者针对这些问题正在开发或已经发布相应插件,请大家留意。
大家可以下载安装Anaconda。JupyterLab、Spyder、PyCharm等常用工具,都集成在Anaconda中。下载Anaconda的地址为:
◄ https://www.anaconda.com/
JupyterLab探究式学习视频:
代码文件
鸢尾花书的Python代码文件下载地址为:
同时也在如下GitHub地址备份更新:
◄ https://github.com/Visualize-ML
Python代码文件会不定期修改,请大家注意更新。图书原始创作版本PDF(未经审校和修订,内容和纸质版略有差异,方便移动终端碎片化学习以及对照代码)和纸质版本勘误也会上传到这个GitHub账户。因此,建议大家注册GitHub账户,给书稿文件夹标星(Star)或分支克隆(Fork)。
考虑再三,作者还是决定不把代码全文印在纸质书中,以便减少篇幅,节约用纸。
本书编程实践例子中主要使用“鸢尾花数据集”,数据来源是Scikit-learn库、Seaborn库。要是给鸢尾花数学大系起个昵称的话,作者乐见“鸢尾花书”。
学习指南
大家可以根据自己的偏好制定学习步骤,本书推荐如下步骤。
学完每章后,大家可以在社交媒体、技术论坛上发布自己的Jupyter笔记,进一步听取朋友们的意见,共同进步。这样做还可以提高自己学习的动力。
另外,建议大家采用纸质书和电子书配合阅读学习,学习主阵地在纸质书上,学习基础课程最重要的是沉下心来,认真阅读并记录笔记,电子书可以配合查看代码,相关实操性内容可以直接在电脑上开发、运行、感受,Jupyter笔记同步记录起来。
强调一点:学习过程中遇到困难,要尝试自行研究解决,不要第一时间就去寻求他人帮助。
意见建议
欢迎大家对鸢尾花书提意见和建议,丛书专属邮箱地址为:
◄ jiang.visualize.ml@gmail.com
也欢迎大家在B站视频下方留言互动。