標籤:

如何用 Python 可視化《三國》人物與兵器出現頻率?(視頻教程)

如何用 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 ,把教程的運行環境扔到了雲上。

請點擊這個鏈接(t.cn/R1TLtxq),直接進入咱們的實驗環境。

不需要在本地計算機安裝任何軟體包。只要有一個現代化瀏覽器(包括Google Chrome, Firefox, Safari和Microsoft Edge等)就可以了。全部的依賴軟體,我都已經為你準備好了。

如果你對這個代碼運行環境的構建過程感興趣,歡迎閱讀我的《如何用iPad運行Python代碼?》一文。

瀏覽器中開啟了咱們的環境後,請你觀看我給你錄製的視頻教程。

視頻教程的鏈接在這裡。

希望你能跟著教程,實際操作一遍。這樣收穫會比較大。

教程的末尾,我給你留了一道練習題。說明了練習題的要求,還給出了輔助框架代碼。

請你自行嘗試解決該練習題,以鞏固所學知識。

如果你解完了練習題,或者在解題過程中遇到了問題,歡迎參考我做的練習解答視頻,核對參考答案。

這段視頻的鏈接在這裡。

https://www.zhihu.com/video/986648147128528896

通過本教程,希望你已經掌握了以下知識:

  • 如何讀取文本文件;
  • 如何把字元串分割成列表;
  • 如何依據順序,找出列表中的某一項內容;
  • 如何遍歷列表;
  • 如何統計字元串a中,字元串b出現的次數;
  • 如何新建,並用遍歷方法,填充字典;
  • 如何讀入外部幫助函數模塊,並調用其功能函數;

如果你希望在本地,而非雲端運行本教程中的樣例,請使用這個鏈接(t.cn/R1T4400)下載本文用到的全部源代碼和運行環境配置文件(Pipenv)壓縮包。

然後,請你參考《如何用 pipenv 克隆 Python 教程代碼運行環境?》一文的說明,利用 Pipenv ,在本地構建代碼運行環境。

如果你知道如何使用github,也歡迎用這個鏈接(t.cn/R1T4iL5)訪問對應的github repo,進行clone或者fork等操作。

當然,要是能給我的repo加一顆星,就更好了。

建議

錄完視頻,我做個對比分析:

我倆的講法,到底有哪些不同?

細節的差別,可能有很多。但是大多都不重要。

我只想給尹老師提一個建議——把握節奏

這裡的節奏,主要是為了學生和老師分別獲得即時反饋用的。

編程不是一門看了,甚至聽了,就能懂的課。

這就是為什麼,得到App至今也沒有上線編程課程。

編程必須要強調訓練,注重實踐。

訓練該在什麼時候做?

來自 Coursera, Udacity, 和 DataCamp 等平台的經驗是:

間隔必須足夠短。

老師得盯住學生在學完知識點後,旋即練習。

通過練習,把握知識和技能,提升應用能力。

學生在練習中遇到了疑惑,及時提問,加以解決,可以避免疑問的非線性積攢。

如果你不理解「疑問的非線性積攢」,可以回憶你學微積分或隨機過程的遭遇。

學生不斷積攢疑問,對老師也會有很大的不利影響。因為老師同樣得不到有效反饋,還以為學生那邊一切順利呢。

在文件操作這一部分,尹老師確實也留了練習。

# 練習一 文件的創建和使用1. 創建一個文件,並寫入當前日期2. 再次打開這個文件,讀取文件的前4個字元後退出

問題在於,有多少學生會主動去 GitHub 上面找到這個練習,而且不但做了,還反饋給老師呢?

他們會拖延,甚至忽略這些練習。

然後一味繼續播放下一集。

看似懂了內容,實際上沒有真正掌握。

一旦中途遇到了比較困難的題目,或者是最後來個「期末考試」(例如項目作業),學生剛剛建立起來的學習興趣和信心,可能會徹底崩盤。

還是回到一開始那個問題——如果學生自律能力足夠強,他也就不需要這門 MOOC 了。

我的視頻教程,就是把尹老師原先直接講解的內容(武器文件讀取與統計)先作為練習題,布置給了學生。

剛學完知識後,大部分人,還是願意在操作成本足夠低的情況下,去嘗試一下的。

什麼叫「操作成本足夠低」?

看看我採取的這些方法,你就能理解了:

  1. 不需要學生自行安裝任何編程環境,有瀏覽器和網路就行;
  1. 不用離開 Jupyter Lab 界面,直接打開另外一個 ipynb 就行;
  1. 不需要面對空的文檔,只需要在輔助代碼基礎上,做填空就行;
  1. 不需要猜測代碼長度,已經給出了建議行數;
  1. 不需要接觸過多新的知識點,例如數據框轉化、排序和繪圖等,只需要調用已封裝的幫助函數即可。

而且,視頻教程末尾,明確說明了,下一個視頻就是講解練習的。

這就指明了,本練習的截止日期,就是你播放下一個視頻的時候。

對於自律能力差的學生,很多時候,只能靠這種前面鋪路、後面推一把的方法。

尹老師的教程介紹裡面,類似《三國》武將和兵器譜統計這樣的有趣例子還有不少。

例如查找星座和屬相,用機器學習分類鳶尾花,用爬蟲爬圖片等。

因此,我對後續即將上線的20幾個視頻,還是很期待的。

《零基礎學 Python》課程對應的 github 項目鏈接在這裡(t.cn/R1TGsnK)。

裡面不僅包括課程已發布視頻的全部對應代碼,還包含了配套的練習和講義等。你可以在訂閱課程之前,先瀏覽一下。

如果你對這門課程感興趣,可以點擊 這個鏈接 ,掃碼訂閱。

討論

你是通過什麼課程或書籍,入門 Python 的?它有什麼特色?還有哪些值得改進的地方?歡迎留言,把你的經驗和思考分享給大家,我們一起交流討論。

如果你對我的文章感興趣,歡迎點贊,並且微信關注和置頂我的公眾號「玉樹芝蘭」(nkwangshuyi)。

如果本文可能對你身邊的親友有幫助,也歡迎你把本文通過微博或朋友圈分享給他們。讓他們一起參與到我們的討論中來。

延伸閱讀

如何高效學Python?

如何高效入門數據科學?


推薦閱讀:

Matplotlib:入門二
06.大雜燴 線性方程組 逆矩陣 列空間 零空間 非方陣
Tableau&BDP,哪個是最符合中國用戶使用習慣的數據可視化分析工具?
星巴克點亮全球:看看哪些城市星巴克最多
數據可視化實例 seaborn(1)

TAG:可視化 | Python |