在科學計算和數據分析領域中,今後 Python、R、Julia 各自會有什麼樣的發展趨勢?

三者都是開源的,python的通用性,R的統計特性,Julia的高性能會對本身有什麼樣的影響?


最饞 Julia,只用過一點 Python + QT + OpenGL 做 3D 掃描數據的拼接和顯示,羨慕 R 的 LaTeX + knitr + Sweave 學術工具鏈。

最近把一個 MATLAB 原生的演算法移植到 Julia 了,但即使是優化也無法比 MATLAB 的原生代碼速度更快。

PS. Julia 0.4 性能提升非常大,雖然還沒有測試數據,但體驗明顯。等有空補充新測試結果。

代碼在此:quxiaofeng/ProjectiveDictionaryPairLearning.jl · GitHub(歡迎大家提交 pull request 幫助優化;已進入官方庫可以直接執行 Pkg.add("ProjectiveDictionaryPairLearning") 安裝)

所以無法簡單說 Julia 比 MATLAB 快。

但 Julia 的優點是可以一句對一句的直譯 MATLAB 代碼。而且已經有成熟的包讀寫 MAT 文件。(simonster/MAT.jl · GitHub)已經可以無痛轉移,替代部分 MATLAB 功能。

同時,無恥的 PyCall (stevengj/PyCall.jl · GitHub)可以直接調用 Python,更令 Julia 成為膠水語言 Python 的膠水。

暫時 Julia 還有各種各樣的問題和毛病,但似乎是很有希望。我個人希望 Julia 能有更大的發展。


討論發展趨勢什麼的,自覺還沒有那麼遠見卓識,我就拋磚引玉一下好了。想到哪說到哪,大家多多包涵吧!

  1. Python :現在的我工作上的主力語言。因為Python在經過這麼多年的發展還有這麼多年的積累之後,已經能適應絕大多數的數據分析和科學計算的任務了。科學計算有:SciPy、NumPy,畫圖有:matplotlib、Chaco,數據分析有:Pandas、Scikit-learn,所以,從我的使用感受來說,python已經越來越能很好的代替R做很多事情了,而且運算速度、內存使用都比R要好了N個數量級,而且相關的書籍也不比R少了。就發展來說,Python很有可能會成為這些領域的主力開發語言,雖然他的效率沒有C、Julia之類的高。

  2. R:用的還算比較多,感覺上,R語言更適合快速寫一個模型的原型,然後簡單測試,這也是因為現在R語言的各種Package很多,想要什麼基本的模型都能找到。做起來容易,還算快速。而且入門R也更容易一些。所以我覺得,R的發展主要還是在模型初級驗證方面,還有就是數據分析的入門方面。

  3. Julia:操作上蠻像Matlab,符號運算也還不錯,運算速度很不錯,現在也有一些package了。使用上的感覺是Julia更偏科學計算,支持科學計算早晚也會出現支持數據分析方法的Package,只是不一定會有很多人習慣使用。但是他的運行效率確實不錯,對那些需要速度的任務比如Quant之類的事情,有可能成為使用Julia的主要人群吧。而且,Julia確實似乎已經在往這方面發展了?因為看到有關Quant的Package已經有一些了。總之,Julia的發展也許就在金融和替代Matlab的方向上吧。


SAS主要是在醫藥公司、銀行業等大公司,SAS出來的結果大家還是比較認可的,而且跟資料庫的連接也比較好,世界500強的很多公司都在使用,數據管理的功能明顯好於R。R語言就是一門統計學家的語言,很多很多的統計方法,被人詬病的是耗內存,運行慢,但是隨著R的火熱,編程人員的加入,並行計算的能力不斷在加強。同時R語言簡捷的繪圖能力也是一大殺器,R語言發展願景還是很好的。Python是一個全能的編程語言,數據分析方面也展示出很強大的能力,繪圖能力也很強,也是一門膠水語言,很好的使用其他語言的代碼,所以在互聯網企業挺受歡迎,世界上最值得學習的語言篇python排第三。其實選擇哪種語言跟工作的環境有關係,現在都是團隊合作了。所以根據以後從事的行業的情況選擇合適的語言吧。


不要把科學計算和數據分析混為一談。

科學計算用python屬於黑科技。

用R或者Julia的沒聽說過。


用Julia寫了一段時間Python了。

這句話什麼意思呢?

就是使用Python的包進行在Julia中進行工作。

不僅僅是sklearn, numpy,pandas和scipy…連web框架都能用,flask美滋滋,從底層擼框架,能用比Python更自由和優雅的語法是很舒服的。

我現在認為,能用Python的地方,代碼直接拿到Julia上用也沒有問題。所以說Julia在開發中代替Python並不是不可能。

Python靠Rpy可以調用R...

那麼大概是這樣的。。。

我可以在Julia里使用Python和R的(絕大部分)東西,您說這意味著什麼呢?


python膠水語言,適合其他軟體的腳本提供擴展支持。R偏向數學應用,學術研究什麼的,類似matlab作為一種工具存在。另一個就不了解了,各有自身特點


推薦閱讀:

sklearn 中的模型對於大數據集如何處理?
有沒有一些入門級的機器學習或數據挖掘的書推薦呢?演算法理論實戰都行的。
有哪些免費軟體能夠根據數據生成分析圖,簡易一些的,能夠讓數據分析的新手快速掌握數據分析方法?
數據分析和挖掘有哪些公開的數據來源?
數據埋點是什麼?設置埋點的意義是什麼?

TAG:Python | 數據分析 | 科學計算 | R編程語言 | Julia編程語言 |