如題 本人大一 數據科學專業 之前利用課餘時間自學了基礎的python 能過計算機二級 如今想進一步深入的學習卻很迷茫 感覺有很多方向 個人目前偏向數據分析方向 但是對於一些基本的計算機知識 比如http web之類的都不了解 看一些書的時候也很懵 處於一種感覺看懂了實際上又不是很懂的狀態 所以問問怎麼能夠更好的學習計算機 不一定必須是python 就是此刻沒有什麼目標了。


剛考完二級,應該繼續學習《數據結構和演算法》,離散數學 ,計算機科班課程。

微積分、線性代數、概率和統計。

你才大一,不要著急,先學基礎知識。


直接給你來點乾貨吧:

從對抗到融合,教你充分利用R+Python!

如果你從事數據科學的工作,可能會立即想到兩種編程語言:R和Python。

事實上,R和Python本身是很好的工具,但通常被認為是競爭對手。今天推薦的這篇文章將會把兩者進行比較,而不是將它們視為兩種選擇。

如果你在Google搜索欄中輸入R vs Python,會立即獲得大量有關一方的優勢的文章。

產生這種結果的原因之一,是人們根據他們根據對編程語言使用的選擇將數據科學領域劃分為陣營,一個R營地和一個Python營地。而且這兩個陣營往往不能和諧相處,其中的成員都相信他們的語言優於對方。因此,在某種程度上,分歧並不在於工具,而在於——

為什麼不同時使用呢?

數據科學中有很少一部分人同時使用Python和R。但事實上,有很多人雖然只用一種編程語言,但他們也想要使用另一個軟體的某些功能。例如,R用戶有時會想要使用Python本機的面向對象能力,同樣,一些Python用戶也想用R中的各種統計分布。

上圖是Red Monk在2018年第三季度進行的調查結果。這個調查數據來源於Stack Overflow和Github上的語言的流行度,它清楚地表明R和Python普及度都比較高。因此,沒有內在的理由說明為什麼我們不能在同一個項目上同時使用二者。我們的最終目標應該是更好地分析並獲得更好的理解,編程語言的選擇不應成為實現這一目標的障礙。

R與Python回顧

讓我們來看看這些語言以及它們的優缺點。

Python

自1991年發布以來,Python一直非常受歡迎,並廣泛用於數據處理。優點有:

· 面向對象的語言。

· 廣泛的用途。

· 有很多擴展(功能)和強大的社區支持。

· 簡單,易與理解和學習。

· 在pandas,numpy和scikit-learn這樣的軟體包上,Python是機器學習活動的絕佳選擇。

但是,與R不同,Python沒有用於統計計算的專用包。

R

R的第一個版本發佈於1995年,從那時起它就成為業界最常用的數據科學工具之一。

· 幾乎包含所有可以想到的統計應用程序的安裝包。CRAN目前擁有超過10k的包。

· 配備了完備的?可視化庫,如ggplot2。

· 能夠進行獨立分析。

性能良好的R不是最快的語言,並且在處理大型數據集時有時可能會內存過多。

充分利用這兩種語言

我們能否同時利用R的統計能力和Python的編程能力?當我們可以輕鬆地在R或Python腳本中嵌入SQL代碼時,為什麼不將R和Python混合在一起呢?

基本上有兩種方法可以在一個項目中同時使用Python和R.

在Python中使用R

· PypeR

(http://bioinfo.ihb.ac.cn/softwares/PypeR/)

PypeR提供了一種簡單的方法,通過管道從Python訪問R。PypeR也包含在Python的Package Index中,它提供了一種更方便的安裝方式。當Python和R之間不需要頻繁的互動式數據傳輸時,PypeR特別有用。通過管道運行R,Python程序在流程操作系統平台(包括Windows 、GNU Linux和Mac OS)的子流程式控制制下,可以獲得內存控制和可移植性方面的靈活性。

· pyRserve

(https://pypi.org/project/pyRserve/)

pyRserve使用Rserve作為RPC連接網關。通過這種連接,可以在Python中用R設置變數,也可以遠程調用R函數。R對象作為Python實現的類的實例公開,在許多情況下R函數作為這些對象的綁定方法。

· rpy2

(https://rpy2.bitbucket.io/)

rpy2在Python進程中運行嵌入式R。它創建了一個框架,可以將Python對象轉換為R對象,將它們傳遞給R函數,並將R輸出轉換回Python對象。rpy2更常用,並且在積極開發中。

在Python中使用R的一個優點是可以在Python中輕易使用R的強大軟體包,如ggplot2,tidyr,dplyr等。舉一個例子,讓我們看看如何在Python中使用ggplot2進行映射。

· 基本場景

https://rpy2.github.io/doc/latest/html/graphics.html#plot

· 幾何

https://rpy2.github.io/doc/latest/html/graphics.html#geometry

在R中使用Python

我們可以使用下面其中一種替代方法在Python中運行R腳本:

· rJython

(https://r-forge.r-project.org/projects/rjython/)

該包通過Jython實現了Python的介面。它旨在讓其他包能夠與R一起嵌入python代碼。

· rPython

(https://cran.r-project.org/web/packages/rPython/index.html)

rPython又是一個允許R調用Python的包。它使得在R中運行Python代碼,進行函數調用,分配和檢索變數等成為可能。

· SnakeCharmR

(https://github.com/asieira/SnakeCharmR)

SnakeCharmR是rPython的現代版本。它是rPython的一個分支,它用了jsonlite並且比rPython有很多進步之處。

· PythonInR

(https://bitbucket.org/Floooo/pythoninr/)

PythonInR通過提供從內部與Python交互的函數,使得從R內部訪問Python變得非常容易。

· reticulate

(https://github.com/rstudio/reticulate)

網狀軟體包為Python和R之間的互操作性提供了一套全面的工具。在上述所有選擇中,這個是最廣泛使用的,更是因為它正在被Rstudio積極開發。Reticulate在R會話中嵌入Python會話,實現無縫、高性能的互操作性。該軟體包使你能夠將Python代碼網格化為R,從而創建一個將兩種語言編織在一起的新項目。

網狀包提供以下設施:

· 以各種方式從R調用Python,包括R Markdown,獲取Python腳本,導入Python模塊以及在R會話中以交互方式使用Python

· R和Python對象之間的轉換(例如,R和Pandas數據幀之間,或R矩陣和NumPy數組之間)。

· 靈活地綁定到不同版本的Python,包括虛擬環境和Conda環境。

結論

R和Python都是非常強大的語言,其中任何一種語言都足以執行數據分析任務。但是,對於這兩者來說肯定存在一些優缺點,如果我們能夠利用兩者的優勢,一定可以做得更好。無論如何,對二者進行充分的了解能夠讓我們在更多的環境中進行工作。

————————————————————————————————

更多AI科技資訊乾貨,歡迎關注【讀芯術】哦~

發佈於 2019-04-02繼續瀏覽內容知乎發現更大的世界打開Chrome繼續digoldsdigolds想學習編程並成功面試?不妨試試www.digolds.cn

到下面這個網站系統地學習Python

如何學習Python 3.6.x 系列課程 - Digolds?

www.digolds.cn


到下面這個網站系統地學習Python

如何學習Python 3.6.x 系列課程 - Digolds?

www.digolds.cn


思考

你既然能問出這樣的問題,就說明你缺的不是學習的目標,缺的更不是學習資源,缺的是對未來的認知,視野太狹隘

分析

首先來了解一下 Python,Python的標準庫和第三方庫強大到你無法想像,無論你想從事任何方向的技術編程,你幾乎都能找到相應的庫支持

1、爬蟲—— 爬蟲領域,Python是霸主,ScrapyRequestBeautifuSoapurllib等,想爬啥就爬啥

2、WEB開發—— 最火的Django, 支持非同步高並發的Tornado,短小精悍的flask

3、自動化運維—— 不用評說Python頭牌

4、金融分析—— 高頻交易、金融數據分析、量化交易是使用最多的

5、雲計算—— 知名的雲計算框架OpenStack是Python目前最成熟的商業應用

6、科學運算—— Python很早就用於科學計算了,隨著 NumPy, SciPy, Matplotlib 數據處理庫的發展,使得Python越來越適合於做科學計算、繪製高質量的2D和3D圖像。Matlab必然要成為過去式

7、人工智慧——Facebook 開源了 PyTorch , Google 開源了TensorFlow就看他們兩個誰當大哥,無論誰當大哥開發語言都是Python

8、遊戲開發——在網路遊戲開發中Python也有很多應用。Python開發加 C/C++ 擴展。可以大量縮減代碼量

9、網路編程—— 支持高並發的Twisted網路框架, python3引入的asyncio使非同步編程變的非常簡單

預測

在未來python的使用量趕超java是可預見的,Python WEB 很難干敗 java web,但是取代PHP是有可能的,我很看好

建議

Python在雲計算、爬蟲、自動化運維、金融分析領域已經是頭牌

其實學什麼取決於你自己,再回頭看一下,我介紹 Python 相關領域的排序,發現什麼了嗎?

不要被那麼多領域繞花了眼,也不要只聽被人說什麼人工智慧是未來,大數據有錢途,從上至下,對哪個感興趣,學就行了,基本是按應用場景的廣度,和難易程度排下來的

隨便挑一個別人給你指出的學習攻略,你基本需要窮其一生去學習,先想找到自己的興趣點、多對未來進行思考、多擴展自己的眼界視角

現在你既然入了Python的門,而且還是大一,不知道你的學歷背景是什麼樣的

個人建議:如果是普通211一下,就不要猶豫先從 python web、python爬蟲入手做項目,python爬蟲推薦 靜覓丨崔慶才的個人博客,Python web推薦 靜覓 | StormSha 的個人博客 都是實戰派,直接實戰,拿出作品,走出學校不需要擔心工作的問題

給你看一個網站,http://www.ailab.cn/ ,你在百度搜索人工智慧,這個網站就會映入眼帘,這個東西完全可以靠 python 爬蟲加python web幹起來,讓你躺在家裡賺錢。有的時候搞技術的其實缺的是對錢機的敏銳度,走爬蟲加WEB路線只要你肯動腦子就有錢機

如果是名牌學校,建議還是學人工智慧、科學運算,數據科學需要的其實不是編程技術而是數據科學

隨便挑出一個被人推薦的學習路線或者學習圖譜,感覺都需要窮其一生去學習,因為python的東西太多了,有哪個必要都學嗎?其實很多時候是需求推動學習,當你走向工作崗位你就知道什麼是學習了,在學校按部就班的走那是素質教育,不是學習。就像我最初學習 Python 時學的爬蟲比較多,但是工作後由於工作需求,直接看著文檔,打開Google就開是做起了 WEB 項目

總結

先了解 Python 的現狀、發展、未來,再思考自己的現狀、發展、未來

做出決定,無論學習哪個方向目標都是要有一個拿的出手的作品,不要照本宣科,那樣只能是自我陶醉

只要定了學習方向,學習資源網上一抓一大把,如果不定方向你會發現你的學習資源越來越多了,但是都被束之高閣。定了方向也不代表你未來的工作只能是這樣,python是相當泛化的,因為它就像一個工具語言一樣,會了一個方向,再去研究其它東西會容易很多。


python高級用法_iOS-創客學院?

www.makeru.com.cn圖標

建議你可以看一下


找份詳細的視頻看,看完再看書


推薦閱讀:
相关文章