如何快速掌握Python的第三方庫?
您好,感謝您能給我這個機會回答這個問題。
python目前已經是市面上很火的語言了,但是入門容易精通難。
我用業余時間自學這些庫大約用了一年左右。總結一點學習技巧希望能幫到題主和有類似問題的朋友。
先瀏覽了一下這個問題下的其他回答,發現絕大部分都是媒體內容的堆砌(包括但不限于——免費課、筆記、官方手冊、書籍、小例子等等)。如果題主并不是準備做相關庫開發,換言之是重應用而不太重視背后原理的話,我很不推薦用這種學習方式——這些手冊和書籍,名義上確實“系統”地講解了這些庫的各個模塊的使用,而且越是質量好的、面向新手的書籍,每個模塊和一些“坑”就講解的越詳細。
但很遺憾,在自學體系內,由于新手本身就沒有對這些模塊重要度的認知,又沒有人帶著入門,所以只能一視同仁地去學習它們,看似系統,實際上毫無側重,眉毛胡子一把抓。哲學上來說就是作為新手,未能區分“系統學習matplotlib,numpy,scipy,pandas”這件事里面的主要矛盾和次要矛盾。
我們回顧一下小時候學習漢字,以及后來考托福、雅思的經歷。給你一本字典/紅寶書,你當然是要先把它們過一遍,然后開始不斷背誦記憶。我們當然不否認把整本字典/紅寶書倒背如流很厲害,但是很多時候我們也要問自己是否有必要做到這樣;相反,我相信大部分情況下對字典/紅寶書的掌握都是掌握核心詞匯和常見用法為準——很多情況下你用倒背如流整本字典的資源,用來提升其他短板實際上能獲得更均衡的提升。
看到這里,如果你有一些悟性,應該大概知道我接下來要說什么了。你以為要這么“系統”學習然后就能解決問題1、2、3、4,實際上你會發現在沒人帶領以及大量時間復習的情況下,你根本做不到把每個模塊的內容都記下來,往往是學了A忘了B,越到后面越學越亂,學習信心也受到很大影響。
所以你一定要加上自己的學習能力,不斷的突破自我。
大家可以去看看pandas或者官方文檔,會學到挺多的。
看看文檔,就會發現這個指南將日常中的事項已經幫你歸類為一下幾個大類:
IO, 文件讀取與保存
Indexing and select, 書籍索引與選取
MultiIndex, 多級索引
Merge, join and concatenate, 數據集合并
Reshaping and pivot table,改變數據形狀與透視表
Working with text data, 處理字符串
Working with missing data,處理缺失值
Categorical data,目錄型數據(或者說分類型數據)
Nullable integer data type,給“空數據”標記某種特定類型
Visualization, 數據可視化
Computation tools,計算工具
Group by,分組
Time serious,時間序列
Time delta,時間運算
Styling, 自定義風格
Operations and setting,自定義操作方式與設置(包括外圍環境設置等)
Enhancing performance,強化效能
Frequent asked questions, Q&A
Pandas cookbook, 奇技淫巧合集(笑)
看起來好像仍然很多,不過稍微花點時間,不難發現,對于初學者,根本沒必要關注諸如如下內容:
自定義風格(默認的已經很好用而且通用,大家用下來也沒啥批評)
性能增強(走都沒會就不用想跑了吧)
Q&A(你會看軟件安裝協議嗎?)
MultiIndex (這是啥玩意,以前都沒接觸過,不看——當然了,這個本身是pandas一個很重要的類,但是初學者完全可以略過)
相反,我相信正常人都應該更關注下述內容:
IO - 我咋讀取Excel,csv和json文件,處理完之后又怎么保存它們呢?
Indexing and select - 讀取完成之后我要怎么(按某些條件)篩查數據呢?
Merge - 我怎么合并多個數據集?
Text data & Missing data - 我怎么修改文本格式,處理缺失值?
Visualization - 有沒有必要可視化(散點圖、直方圖),要怎么做?
所以,在你安裝完相關庫之后,你要做的就是先看一遍手冊,大概了解這個庫能做什么事情。然后:
找一個格式比較規范的Excel文件(或者某些網上的公開數據集,比如“鳶尾花分類”數據集)
從讀取文件開始入手,然后假想你期望從這個數據集上獲得的信息并在手冊內找到對應內容開始學習——比如我想像Excel那樣篩選某個特定條件的數據,我該怎么做;又比如我想獲得某些分類的統計量(均值、偏度等)我該怎么做,等等
不斷給自己“出難題”,將這些問題拆分成更小的,能夠在手冊內直接查到的部分,然后反復學習。某些手冊內語焉不詳的,就去網上搜搜別人怎么做的。
換不同的數據集、更臟的數據集,并在 讀文件 -> 數據清洗 -> 分析數據 -> 輸出(保存、可視化等)的過程中,逐漸摸索出自己的套路,并反復練習相關代碼及各代碼模塊間的傳遞和銜接
恭喜,至此你應該對pandas整個庫有了比較深刻的感性認識并系統掌握了pandas的大部分內容了
在上面學習pandas的過程中,出于某些原因(比如期待更好更靈活的可視化效果),你應該可以 同時并行學習其他庫,但學習方法上和上面的例子類似:即,先樹常規靶子,拆解問題并在手冊內找到對應解,之后給自己出難題并摸索自己的工作流(解題套路)。
總結:通過上述一些學習內容個方法,相信你也可以學的很好,不斷的思考不斷突破,一定能成功!