當前位置:
首頁 > 最新 > 關於Python和數據入門

關於Python和數據入門

前面有篇文章講了我在數據方向是怎麼學習的,像前天也分享了如淘寶模擬登錄這種難度較大的網路請求分析和模擬、今天講點簡單的內容,給想入門的小夥伴一些經驗。

現在數據處理相關技術大都是以Python作為編程語言的,所以你想做好數據相關的工作的話,Python必須玩得溜。另一方面,這也並不難,因為數據工作對Python的要求也並不是特別高。有點矛盾對吧,我的意思是,你其實也不需要懂Python的奇淫異巧,就簡單的語法學會,然後熟悉相關的類庫就好了。我自己不是Python後端工程師,如果比Python技術的話我當然比不過他們,但是在處理數據,像抓取、分析和挖掘方面還是有一些經驗分享的。

Python得入門我覺得很容易,廖雪峰前輩寫的Python教程很棒,需要學Python的小夥伴可以去學習。強烈建議邊看教程邊自己敲代碼實驗,這個過程很重要。像我其實是完全自學的,今天還有群里小夥伴問我自學有什麼經驗,一方面你要保證自學的效率足夠高,另一方面像數學啊編程啊這種東西肯定是要下手去練的,熟能生巧,練得多了甚至都形成肌肉記憶了。Python的入門我就推薦廖雪峰前輩的教程啦。稍進階點的Python應該看什麼書呢?我這裡推薦《Fluent Python》。至於學Python2還是3,我選3,原因不解釋。

數據抓取的學習呢,分為兩個過程。一是請求分析,二是並發處理。其實數據抓取需要學的庫就兩個,一個是requests,一個是scrapy。簡單的數據下載我通常選requests來完成,這個的學習直接看官方文檔就好了,很簡單。遇到解決不了的問題可以問Google和Stackoverflow。分享個果殼登錄的requests小例子給大家。

如果是大量數據需要處理或者有並發需求的話,就要考慮用scrapy來解決了。並且scrapy畢竟是成熟的框架,對爬蟲、網路請求以及數據流的處理可以分別通過spider middleware、download middleware以及pipeline來定製,可以說能滿足各種複雜的需求。再來簡單看一個scrapy的demo。

這個demo完成了https://www.news-medical.net/網站的新聞抓取。除了scrapy,還有一個叫pyspider的爬蟲框架也挺有名,但是個人建議不要去碰。我做過2個月多的pyspider的項目開發,是個大項目,然後開發過程中就遇到很多pyspider的坑,比如定時調度無法調起,比如代碼調試很不方便,比如爬蟲間調用需要on_message傳遞數據而scrapy一句yield from就解決了等等問題。當然pyspider的作者也是能力很強的,我肯定寫不出像類似的東西,但是還是建議大家不要在產品環境中使用pyspider,玩具可以玩玩試試。

數據抓取的書的話給大家推薦《Web Scraping with Python》,另外scrapy的官方文檔寫的很詳細,建議要在數據抓取方向發力的小夥伴熟讀文檔。看書看文檔是一回事,另一方面還是建議大家多做項目,實戰演練。

說到數據抓取或者爬蟲,有一個繞不過去的問題就是反爬。其實被反爬限制的本質就是因為你沒完全模擬瀏覽器的請求。這個學習和探索的過程,就是網路請求分析。像前幾天給大家講的淘寶的模擬登錄,就是很複雜的請求分析了,可以涵蓋反爬的很多方面。當然像Usre-Agent這種簡單的反爬它並沒有涉及,大家可以自己補充一下。想要做到一個優秀的爬蟲工程師的話,就抓緊練習自己的網路請求分析能力吧~

再來聊聊數據分析的學習。值得一提的是,在學術界用R語言做數據分析的比較多,像我在香港中文大學讀統計學博士的朋友用的就是R語言;業界的話R和Python都會有,並且我個人覺得Python的生態會更好一些。數據分析的入門建議從numpy、pandas這個兩個庫入手。書呢推薦《Python for Data Analysis》以及《利用Python進行數據分析》。然後一般做項目啊,數據分析的結果是需要做可視化的,Python做可視化的話可以用matplotlib,或者用js做可視化用個很棒的庫是d3.js,更炫的3D可視化可以推薦three.js。像這種可視化工具的學習其文檔就寫的很棒。我提到多遍,遇到問題善於利用Google這個工具,像我自己學習的話就是通過Google查閱資料解決遇到的問題的。

大數據的話主要就是流行的庫和框架的使用了,這些都必須有實戰經驗。像大數據處理平台Hadoop、Spark,消息隊列kafka,非關係型分散式資料庫Hbase,分散式應用程序協調服務ZooKeeper,數據倉庫工具hive等。每一個框架都是個難啃的骨頭,如果想朝大數據工程師發展的話建議去公司實習,實戰操練其中的技術。

數據挖掘的入門就需要學習機器學習的相關技術了,我本人也在探索學習中,在看的書有《數據挖掘:概念與技術》、《機器學習導論》。大家有什麼好的經驗或者分享大家可以一起交流。

文中提到的相關資料都可以加入知識星球獲取,也可以與作者進行深入討論。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python 的精彩文章:

Python 技巧總結
有沒有小夥伴在學習Python?點進來看了

TAG:Python |