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