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

我們以《三國演義》人名和兵器譜爲例,嘗試讀取不一樣結構的文本文件,而且對其中的信息進行統計分析和可視化。html

入門

如何幫助學生高效入門 Python ,一直是困擾個人問題。python

總結經驗後,我寫下了《如何高效學Python?》一文。git

文中按照自律能力,我把學生分紅了3個類別。github

自律能力最高的,看書就行。文中推薦了我認爲最好的 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代碼?》一文。

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

視頻教程的連接在這裏

但願你能跟着教程,實際操做一遍。這樣收穫會比較大。

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

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

若是你解完了練習題,或者在解題過程當中遇到了問題,歡迎參考我作的練習解答視頻,覈對參考答案。

這段視頻的連接在這裏

經過本教程,但願你已經掌握瞭如下知識:

  • 如何讀取文本文件;
  • 如何把字符串分割成列表;
  • 如何依據順序,找出列表中的某一項內容;
  • 如何遍歷列表;
  • 如何統計字符串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. 不須要學生自行安裝任何編程環境,有瀏覽器和網絡就行;
  2. 不用離開 Jupyter Lab 界面,直接打開另一個 ipynb 就行;
  3. 不須要面對空的文檔,只須要在輔助代碼基礎上,作填空就行;
  4. 不須要猜想代碼長度,已經給出了建議行數;
  5. 不須要接觸過多新的知識點,例如數據框轉化、排序和繪圖等,只須要調用已封裝的幫助函數便可。

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

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

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

尹老師的教程介紹裏面,相似《三國》武將和兵器譜統計這樣的有趣例子還有很多。

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

所以,我對後續即將上線的20幾個視頻,仍是很期待的。

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

裏面不只包括課程已發佈視頻的所有對應代碼,還包含了配套的練習和講義等。你能夠在訂閱課程以前,先瀏覽一下。

若是你對這門課程感興趣,能夠點擊 這個連接 ,掃碼訂閱。

討論

你是經過什麼課程或書籍,入門 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代碼?》一文。

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

視頻教程的連接在這裏

但願你能跟着教程,實際操做一遍。這樣收穫會比較大。

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

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

若是你解完了練習題,或者在解題過程當中遇到了問題,歡迎參考我作的練習解答視頻,覈對參考答案。

這段視頻的連接在這裏

經過本教程,但願你已經掌握瞭如下知識:

  • 如何讀取文本文件;
  • 如何把字符串分割成列表;
  • 如何依據順序,找出列表中的某一項內容;
  • 如何遍歷列表;
  • 如何統計字符串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. 不須要學生自行安裝任何編程環境,有瀏覽器和網絡就行;
  2. 不用離開 Jupyter Lab 界面,直接打開另一個 ipynb 就行;
  3. 不須要面對空的文檔,只須要在輔助代碼基礎上,作填空就行;
  4. 不須要猜想代碼長度,已經給出了建議行數;
  5. 不須要接觸過多新的知識點,例如數據框轉化、排序和繪圖等,只須要調用已封裝的幫助函數便可。

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

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

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

尹老師的教程介紹裏面,相似《三國》武將和兵器譜統計這樣的有趣例子還有很多。

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

所以,我對後續即將上線的20幾個視頻,仍是很期待的。

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

裏面不只包括課程已發佈視頻的所有對應代碼,還包含了配套的練習和講義等。你能夠在訂閱課程以前,先瀏覽一下。

若是你對這門課程感興趣,能夠點擊 這個連接 ,掃碼訂閱。

討論

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

喜歡請點贊。還能夠微信關注和置頂個人公衆號「玉樹芝蘭」(nkwangshuyi)

若是你對數據科學感興趣,不妨閱讀個人系列教程索引貼《如何高效入門數據科學?》,裏面還有更多的有趣問題及解法。

相關文章
相關標籤/搜索