如何用 Python 可视化《三国》人物与兵器出现频率?(视频教程)

咱们以《三国演义》人名和兵器谱为例,尝试读取不同结构的文本文件,并且对其中的信息进行统计分析和可视化。

入门

如何帮助学生高效入门 Python ,一直是困扰我的问题。

总结经验后,我写下了《如何高效学Python?》一文。

文中按照自律能力,我把学生分成了3个类别。

自律能力最高的,看书就行。文中推荐了我认为最好的 Python 书籍,有中文译本;

自律能力中等的,可以学各种轻量级课程组合。除了我当时推荐的课程平台外,最近我发现 Udemy 上的某些课程,也很不错;

自律能力较低的,可以学一门比较完整的专项课程。我推荐了经典 Python 入门课“Programming for Everybody”。

这篇文章很受欢迎,多个平台上阅读量都数以万计。

可是,有一个统计规律,我写作时,似乎没有考虑到。

直到后来,我收到了多名读者的留言反馈,才恍然大悟。

这个统计规律是:

自律能力,和英文能力,是显著正相关的。

仔细诼磨一下这句话,是不是能品出些滋味来?

如果一个学生自律能力较低,去尝试 “Programming for Everybody”,结果会发现英文听不懂,于是放弃……

读者的反馈,让我意识到了,找一门靠谱的、全面系统讲解 Python 基础的中文在线课程,是很重要的。

这样的课程,如果能够达到 “Programming for Everybody”的深度与广度,那么学过后,再进一步学数据挖掘、机器学习,乃至深度神经网络,就可以水到渠成了。

前几天,看到卖桃君(MacTalk,池建强老师的公众号)又重发了《人生苦短,我用 Python》的感言,我就知道又一门 Python 基础课程来了。

果不其然,池老师推荐的,是他们公司《极客时间》平台上的一门新 Python 课程《零基础学 Python》,主讲人是尹会生老师,金山软件西山居技术经理。

虽然我不需要“零基础”学 Python,但是我很想了解这门课,是否足够培训培训新入学的研究生,迅速掌握 Python 。

我很快就付费订阅了。

周末,我花了两个半天的时间,把目前已上线的27个视频(预计总视频数量50个),都从头到尾,完整看了一遍。

许多环节,我都实际跑了代码,还做了笔记。

我觉得,这门课对于我这个“非零基础”的学员,有不少帮助和启发。

如果你一直从事某一方面的工作或研究,即便是 Python 这么简单的语言,很多语法和技巧,你也不会经常用到。

用进废退。很多你学过的东西,也会遗忘掉。

系统地梳理知识体系,可以帮助自己补足漏洞,不至于经常“重新发明轮子”。

另外,我发现之前教程读者不断提出的一些问题,其实都跟 Python 基础命令的不熟悉有关系。

例如几乎每次教程,都要用到的文件操作,以读取外部数据。

你知道可以用 Pandas 读取与分析处理 csv 文件或者 Excel 文件。

但是那些非结构化的文本文件,你该如何读取与分析呢?

如果遇到编码问题,该怎么办?

尹老师在视频教程中,讲解了《三国演义》人名与兵器出现次数统计的例子,让我眼前一亮,觉得确实是很好的分析案例。

一个例子里面,不仅讲解了文件操作,还顺带复习了字符串、列表和字典等多项知识点。

而且我也是个《三国》迷,上中学的时候玩儿《三国志IV》非常上瘾。

为了修改武将技能和数值,还专门学会了16进制。

我在思考,如果换作自己授课,用同样的数据作为例子,给学生讲文件读取、字符串拆分、列表循环、字典生成……我会怎么讲呢?

作为行动派,我立刻就做了个视频教程出来。

视频教程

我采用 Jupyter Notebook 撰写了源代码,然后调用 mybinder ,把教程的运行环境扔到了云上。

请点击这个链接http://t.cn/R1TLtxq),直接进入咱们的实验环境。

不需要在本地计算机安装任何软件包。只要有一个现代化浏览器(包括Google Chrome, Firefox, Safari和Microsoft Edge等)就可以了。全部的依赖软件,我都已经为你准备好了。

如果你对这个代码运行环境的构建过程感兴趣,欢迎阅读我的《如何用iPad运行Python代码?》一文。

浏览器中开启了咱们的环境后,请你观看我给你录制的视频教程。

视频教程的链接在这里

希望你能跟着教程,实际操作一遍。这样收获会比较大。

教程的末尾,我给你留了一道练习题。说明了练习题的要求,还给出了辅助框架代码。

请你自行尝试解决该练习题,以巩固所学知识。

如果你解完了练习题,或者在解题过程中遇到了问题,欢迎参考我做的练习解答视频,核对参考答案。

这段视频的链接在这里

通过本教程,希望你已经掌握了以下知识:

  • 如何读取文本文件;
  • 如何把字符串分割成列表;
  • 如何依据顺序,找出列表中的某一项内容;
  • 如何遍历列表;
  • 如何统计字符串a中,字符串b出现的次数;
  • 如何新建,并用遍历方法,填充字典;
  • 如何读入外部帮助函数模块,并调用其功能函数;

如果你希望在本地,而非云端运行本教程中的样例,请使用这个链接http://t.cn/R1T4400)下载本文用到的全部源代码和运行环境配置文件(Pipenv)压缩包。

然后,请你参考《如何用 pipenv 克隆 Python 教程代码运行环境?》一文的说明,利用 Pipenv ,在本地构建代码运行环境。

如果你知道如何使用github,也欢迎用这个链接http://t.cn/R1T4iL5)访问对应的github repo,进行clone或者fork等操作。

当然,要是能给我的repo加一颗星,就更好了。

建议

录完视频,我做个对比分析:

我俩的讲法,到底有哪些不同?

细节的差别,可能有很多。但是大多都不重要。

我只想给尹老师提一个建议——把握节奏

这里的节奏,主要是为了学生和老师分别获得即时反馈用的。

编程不是一门看了,甚至听了,就能懂的课。

这就是为什么,得到App至今也没有上线编程课程。

编程必须要强调训练,注重实践。

训练该在什么时候做?

来自 Coursera, Udacity, 和 DataCamp 等平台的经验是:

间隔必须足够短。

老师得盯住学生在学完知识点后,旋即练习。

通过练习,把握知识和技能,提升应用能力。

学生在练习中遇到了疑惑,及时提问,加以解决,可以避免疑问的非线性积攒。

如果你不理解“疑问的非线性积攒”,可以回忆你学微积分或随机过程的遭遇。

学生不断积攒疑问,对老师也会有很大的不利影响。因为老师同样得不到有效反馈,还以为学生那边一切顺利呢。

在文件操作这一部分,尹老师确实也留了练习。

# 练习一 文件的创建和使用
1. 创建一个文件,并写入当前日期
2. 再次打开这个文件,读取文件的前4个字符后退出

问题在于,有多少学生会主动去 GitHub 上面找到这个练习,而且不但做了,还反馈给老师呢?

他们会拖延,甚至忽略这些练习。

然后一味继续播放下一集。

看似懂了内容,实际上没有真正掌握。

一旦中途遇到了比较困难的题目,或者是最后来个“期末考试”(例如项目作业),学生刚刚建立起来的学习兴趣和信心,可能会彻底崩盘。

还是回到一开始那个问题——如果学生自律能力足够强,他也就不需要这门 MOOC 了。

我的视频教程,就是把尹老师原先直接讲解的内容(武器文件读取与统计)先作为练习题,布置给了学生。

刚学完知识后,大部分人,还是愿意在操作成本足够低的情况下,去尝试一下的。

什么叫“操作成本足够低”?

看看我采取的这些方法,你就能理解了:

  1. 不需要学生自行安装任何编程环境,有浏览器和网络就行;
  2. 不用离开 Jupyter Lab 界面,直接打开另外一个 ipynb 就行;
  3. 不需要面对空的文档,只需要在辅助代码基础上,做填空就行;
  4. 不需要猜测代码长度,已经给出了建议行数;
  5. 不需要接触过多新的知识点,例如数据框转化、排序和绘图等,只需要调用已封装的帮助函数即可。

而且,视频教程末尾,明确说明了,下一个视频就是讲解练习的。

这就指明了,本练习的截止日期,就是你播放下一个视频的时候。

对于自律能力差的学生,很多时候,只能靠这种前面铺路、后面推一把的方法。

尹老师的教程介绍里面,类似《三国》武将和兵器谱统计这样的有趣例子还有不少。

例如查找星座和属相,用机器学习分类鸢尾花,用爬虫爬图片等。

因此,我对后续即将上线的20几个视频,还是很期待的。

《零基础学 Python》课程对应的 github 项目链接在这里http://t.cn/R1TGsnK)。

里面不仅包括课程已发布视频的全部对应代码,还包含了配套的练习和讲义等。你可以在订阅课程之前,先浏览一下。

如果你对这门课程感兴趣,可以点击 这个链接 ,扫码订阅。

讨论

你是通过什么课程或书籍,入门 Python 的?它有什么特色?还有哪些值得改进的地方?欢迎留言,把你的经验和思考分享给大家,我们一起交流讨论。

喜欢请点赞。还可以微信关注和置顶我的公众号“玉树芝兰”(nkwangshuyi)

如果你对数据科学感兴趣,不妨阅读我的系列教程索引贴《如何高效入门数据科学?》,里面还有更多的有趣问题及解法。

延伸阅读

如何高效学Python?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269