1. 程式人生 > >如何學爬蟲,如何學資料分析,如何學人工智慧並轉到這些行業?

如何學爬蟲,如何學資料分析,如何學人工智慧並轉到這些行業?

最近有個朋友給我留言,和我聊天,分享了他這段時間在培訓Python程式設計這一塊,今天整理這篇文章,會詳細介紹0基礎學python該如何學,幫助到更多想學習python的朋友,給廣大同學朋友規劃個適合學習規劃。

他大學學習的應用化學,後來畢業做了2年全棧設計師(PS:設計和前端都不熟練的那種)後來出於對爬蟲開發的喜歡(爬圖片,爬視訊)還有人工智慧,機器學習,大資料的火熱程度的追捧,毅然決然報了培訓班,學習時間半年,學費兩萬,感覺還挺值得(PS:他就是這麼會安慰自己,即使心裡覺得特別虧也。這不是給培訓機構打廣告的文章)

這是他在培訓期間獲得的一系列資料,點選免費獲取

後來出來找工作,幾經周折和換工作,現在在期貨公司工作,主要工作是資料處理和分析,機器學習,自然語言處理,影象處理等,專案是一個全自動化智慧雲測試雲平臺,現大概講下想轉行python的學習路線,當然他的轉型之路,可能也代表了大多數和他一樣的朋友同學,大學報專業沒選好,不知道計算機網際網路會這麼火,而且出校門步入社會後又沒能直接學計算機從事這個行業,浪費了很多時間,而此刻,就根據 大家的心聲,站在和大家一樣的立場,講述他專業不是計算機,出來後又沒能直接搞計算機網際網路的轉型python路線。

文字主要講述轉型的三個方面:web開發,爬蟲,資料分析與人工智慧

python的發展主要有幾個方向:

網路,爬蟲,資料分析,測試,運維,人工智慧等,要屬當下最火的還是人工智慧,好多人衝著人工智慧的方向學python,其實人工智慧聽起來確實很高大上,都想往這方面湧入,但是作為過來人,如果單純從程式設計0基礎想轉行人工智慧還是難度相當大的(大神除外),因為好多搞人工智慧的公司會相對比較大,現在企業又不願意去培養人,所以招聘時候學歷,專業,專案經驗,工作年限都相對還是比較硬性的。

雖然門檻比較高,但是想轉行python進而轉型資料分析和人工智慧也是有很大機會的,畢竟python在國內火起來也沒多長時間,只要按照科學有效的方法學習提升,也是可以很快轉型的,由於對運維和測試不是特別瞭解,這裡不在說這方面的轉型路線,先講web後端開發、爬蟲開發、資料分析與人工智慧路線。

1,首先是轉行python學習路線:

通用必備基礎知識 :(這些知識不管是做python哪方面,都是基礎知識,必須會)

第一階段:Python入門(框架再怎麼變,基本語法不會變,基礎中的基礎)

資料型別

迴圈判斷

常用模組

函式,迭代器,裝飾器

遞迴,迭代,反射

面向物件程式設計

第二階段:網路程式設計(最好能完全搞透徹)

Socket c / s程式設計,Twisted非同步網路框架

多執行緒,多程序,攜程gevent,選擇 poll epoll

FTP伺服器開發

批量命令,檔案分佈工具

RabbitMQ訊息佇列,SqlAlchemy ORM

Reids MemCache MongoDB快取資料庫

第三階段:正則表示式和資料庫

學習字串匹配的正則表示式重模組

學習的MySQL的資料庫(80%以上的公司都在用)

學習的Redis的資料庫(做網站和爬蟲都很重要)

學習的MongoDB的資料庫

第四階段:WEB前端基礎(坑比較多,多敲)

做WEB當然要懂點基本的前端知識。

html / css基礎

原生JS

JQuery的的(JS庫)

Ajax的非同步載入

繪相簿

引導(瞭解,最好能掌握一種佈局框架)

好了,以上就是不管你後面發展那些方面,這些都是基礎中的基礎,必須要學(我培訓班一共學了2個月)

2,轉型python的網站後端開發學習的知識:

Django的(應用廣泛的後端框架)

tornado

flask(後起之秀的框架)

session/中介軟體/ ORM / CSRF / FORM(一些網路基本的技術知識)

Django,flask,tornado,三個框架各有優劣,網頁框架我用的Django和flask居多,Django的會覺得很多東西都已經封裝好了,可以直接用,不用自己手動構造,比如Django的的管理的後臺和xadmin後臺,flask就相對靈活多變,至少掌握兩個框架,多多益善(我在培訓班1個半月,學的django和flask2個框架)

3,轉型爬蟲學習的知識:

requests:傳送網頁請求,返回資料

xpath:用於網頁元素的提取(當然還有BS4,pyquery等,選擇順手的)

selenium:用於真實瀏覽器訪問網頁,根據具體情況使用

scrapy:用於大規模快速網頁資料爬取

驗證碼破解:驗證碼破解建議大家可以多搞點難破解的,比如滑塊驗證碼,淘寶驗證碼,12306驗證碼等等,面試經常問到哦

(我在培訓班學爬蟲學了3周,主要是requests和scrapy兩個框架)

4,轉行資料分析(機器學習,人工智慧)學習路線:(培訓班學習2個月)

(以下幾個模組是資料分析最常用的庫,一定要學好)

1,學習科學計算和分析包,numpy的和pandas

2,學習視覺化,分析結果視覺化的包matplotlib,實現資料繪圖展示

3,學習資料探勘模型,這個包主要是sklearn,裡面的演算法基本都有對應的包,但希望大家能對高等數學,概率論,線性代數,資訊理論的基礎理論進行學習,這些演算法都是基於數學基礎,如果數學理解不透,也只能當一個調包俠(公眾回覆:機器學習)

4,神經網路的框架,推薦學習TensorFlow或者keras,Karas的是把TensorFlow封裝起來的高階包,學習難度比較低。還有一個更加高階的框架CAFFE,據說很厲害。

5,常見神經網路:迴歸網路,分類網路,卷積神經網路(CNN)在影象語言等領域處理方面優秀,迴圈神經網路(RNN)利用時間序列分析(RNN LSTM),避免過度擬合。自編碼網路,這個我不瞭解,也不感興趣。神經網路還很多,技術前沿的東西還不知道。

好了,說到這裡,基本學習路線就講完了,下面就是最基本的學習路線總結

轉型web :通用必備知識+2個網頁框架

轉型爬蟲:通用必備知識+爬蟲框架

轉型資料分析:通用必備知識+資料分析庫(pandas,numpy的的,matplotlib,sklearn),甚至這些還遠遠不夠用

轉型人工智慧:通用必備知識+資料分析庫+高等數學+線性代數+概率論+ tensorflow框架

接下來回答大家感興趣的幾個問題:

資料分析要不要學高數,概率論,線性代數?

如果不想只當調包俠,也不想在工作中因為不理解數學過程太痛苦的話,多補補數學理論吧,至少我工作中接觸到簡單的數學概念有:標準差,方差,協方差,協方差矩陣,餘弦相似度,導數,對數,偏導,概率論,熵,資訊理論,矩陣運算,向量的運算等等。只能說列舉的這些是基礎中的基礎,比這更難的我也正在學。

資料分析要不要學後端框架?比如Django和flask

以上過程是一個快速轉行資料分析的路線,可能有些介紹不是太全,但大致的學習方向就按這個來,就會少走彎路,但其實作為一名蟒開發者,個人建議最好還能運用一種後端框架,能夠搭建網站後端專案也很重要,雖然在公司工作是資料分析,但是公司經常可能性的會讓搭一些簡單的專案,藝多不壓身,我個人喜歡用的Django

資料分析要不要學前端?(HTML,CSS,JS)

回答是肯定的:必須學,能閱讀懂是基本,越熟練深入越好,因為做資料分析很多都是從爬蟲和網路轉過來的,而爬蟲和網路都對前端技術有一定要求,比如如下原因:

爬蟲讀取頁面結構,獲取標籤,你要能看懂HTML

爬蟲的很多反爬蟲措施基於厲害的JS程式碼和一些複雜的CSS,如果不懂,爬蟲很難做到深層次

後臺專案,至少在PC端的,很多情況下,都要求後端開發人員能讀懂前端程式碼

鑑於很多朋友想從事資料分析,這裡不得不提下,Python的資料分析是一個非常專業的方向,需要有較多的數學理論知識,而且需要有刻苦專研的精神。既然是程式語言,就需要寫很多程式碼,他是至少寫了10,000行程式碼了。最後你還需要了解你自己希望從事什麼行業,傳統資料探勘在銀行,保險,電信,電商等領域已經很普及了成熟了。對於那些高階的神經網路,也就是類似AI領域,在圖片語音視訊識別,自動駕駛,量化投資,機器人等領域也很好的。很多分析師都轉行做這塊了,還是話說回來,想學習的很多,多實踐,加油!

這是他在培訓期間獲得的一系列資料,點選免費獲取