anaconda是什麼?我已經安裝了python3.5感覺很難學啊,anaconda這個軟體好學嗎?
(補充: 現在不考慮gpu的話,矩陣運算python已經不比matlab慢了,最新版anaconda集成了mkl)
anaconda好啊,spyder好啊,jupyter notebook好啊。
anaconda是什麼呀?控制python版本和包管理的工具,內置了集成開發環境Spyder。
好學嘛?很好學,spyder也是最簡單的python ide,並且在中小型的工業項目上也不會輸給pycharm太多(本來就不是面向工程開發的。
她是科學計算神器,對實踐靈感非常友好,內置無數py包。
你想想現在為什麼python這麼火?我覺得和web開發之類的毫不相干,和那一堆雜七雜八的東東毫不相干,更和爬蟲毫不相干。
就是科學計算(+機器學習),基於 scipy,numpy,pandas, matplotlib,硬生生撐起一片天的科學計算。如果黑python,是作為一個外行去黑她語法的張力和顏值,並沒有打到痛處。
scientific環境的python,雖然畫圖方面被ggplot2吊打,略差於matlab,但速度遠勝R(Rcpp你能寫出numpy的速度我也服),大規模計算差於matlab(沒辦法,matlat有intel MKL加很好的GPU支持,畢竟本身是付費軟體,比開源還是強。現在Julia比matlab矩陣慢的原因還不是免費版沒有MKL,但python也能用pycuda快速開發gpu計算程序,性能損失也不會差到和open*l那樣),最關鍵的是有非常便利的面向對象支持和函數式支持(儘管這種程度在專業人士可能看來非常可笑,但用python寫出可讀性高,擴展性高,較為美觀的代碼可以說是非常低門檻的)。
和科學計算有很大親緣關係的ML,大家也看到了,10個DL框架有9個只給python介面,剩下一個python和c++都支持(笑), lua是什麼我不認識(微笑。
說到這裡,題主也該好好寫寫代碼了。有啥不懂的,dir/help一下就好了。
然後我們說下其他的…
——————————分割
小冰封宣傳hs沒問題,來黑conda就不對了。。。
學anaconda的大部分是出身理科類似統計這樣的專業,面對的工作是科學計算,統計分析,模擬實驗,整個領域的生態圈如此。。
你讓人家去搞haskell,人家deadline怎麼辦,每個python包找hs對應都要好久惹…以python的實用小工具包的數量和便利性幾乎可以碾壓jvm的程度,我估計很多事情轉到hs上還是缺了很多東西的。。
而hs科學計算方面的社區規模怕不是還不如perl。。。
用hs的話,人家怎麼融入領域圈子?更多地,發文章,審稿人都寫MATLAB, R, Perl和Python的,你寫個haskell???
這樣嚇別人,題主怕了去寫hs發現和大環境格格不入,如果不是造輪子大牛,怕不是又跑回去寫辣雞MATLAB,面向對象可以把性能減少50%(畢竟obj=obj.method()實在吐槽不能)。
這種事情能少一件是一件。
況且python寫到後面,有點追求的,多半要去學haskell。
python懶人養成攻略:
- c++/java風格 =&>
- 大量使用列表解析,動態對象(比如沒事給類實例setattribute),應該是被笨重的語言壓抑久了=&>
- 開始注意程序美觀程度和簡潔程度,盡量少的使用循環,函數都是pure的,大量使用itertools,functools中的函數做敏捷操作=&>
- 除了顏值外,開始注意程序的連貫性和內在邏輯,發覺python的某些表達非常的冗餘,而且特性太少(雖然擴展起來很容易,而且不像c++/java那樣擴展之後靈活性會減少,但是太無聊了,完全追求簡單並不一定好),並且苦惱於GIL(畢竟是做計算),原始數據結構有時不夠用,開始大量使用eval, exec模擬元編程,使用subprocess, multiprocessing做演算法調度,給變數加沒有用的類型注釋=&>
- 寫各種DSL,給python的解釋器上套東西。比如可以用大括弧替代縮進,簡化並加強lambda定義,添加模式匹配=&>
- 尋找具有不亞於python膠水特性,並且更加簡潔的語言…
但很可惜,單論膠水特性,python真的上天了(不知道這是不是python在黑客中受歡迎的原因。
我覺得...在題主糾結是否要放棄強膠水特性而選擇hs這類語言時,才是最佳安利時機?
Anaconda 是一個可用於科學計算的 Python 發行版,如果把Python比做Linux,那麼Anaconda可以看做Ubuntu。它內置了常用的科學計算包。它解決了Python官方包的兩大痛點。
- 第一:提供了包管理功能,Windows 平台安裝第三方包經常失敗的場景得以解決。
- 第二:提供環境管理的功能,功能類似 Virtualenv,解決了多版本Python並存、切換的問題。
初學者還是先把Python基礎學好了再去了解Anaconda,儘管Anoconda很簡單。
雖然是 suite,但是個人覺得主要解決的痛點是 conda package manager 可以和一些非 python lib 合作;以及及時的不更新以保證代碼可用(比如 matplotlib 更新後的一片相關包)。於是和 docker 之類的整合也被放在 anaconda 中。
如果只是個人用戶用 python 的話,個人覺得 pip 或者 easy_install 比較直觀一些。如果想要偷懶可以用 conda 但是查 package error 可能會略微受苦。
[此處應插入太陽騎士的圖片]
個人的推薦是如果是初學者的話,直接用 pip 莽就好了 (個人的姿勢是 vim-slime+tmux+ipython)
[此處應再次插入太陽騎士的圖片]
Anaconda is the leading open data science platform powered by Python. The open source version of Anaconda is a high performance distribution of Python and R and includes over 100 of the most popular Python, R and Scala packages for data science.
你是Python 難學,還是這個套件難學?
個人覺得Anaconda 還是比較好用的。這個學期有一門課需要學習python ,當時一開始安裝的是pycharm3版本,但是發現很多package 都無法成功安裝,不知道原因。後來,老師給我們推薦了 anaconda ,一開始是懵逼的 ……但是發現,基本上的package 都已經自動安裝了,所以可以直接調用。再後來,前段時間,要做一個期末project ,自己作死,想做 機器學習。然後發現,機器學習的tensorflow需要在 python 3.5才能實現,內心是崩潰的 ……當時安裝的 anaconda 默認是python 3.6版本...上網查了一通,走了很多彎路,才發現anaconda 的神奇之處,可以用anaconda prompt 配置不同的環境 ,不同環境下運行不同版本的python。另外,安裝package 之類的,也可以在 prompt寫,個人覺得還是比較方便的。
推薦閱讀:
※教你閱讀Python開源項目代碼
※演算法,西瓜切十刀,最多是多少塊?
※python如何調用matlab的腳本?
※使用文本挖掘實現站點個性化推薦
※python開發一個項目要怎麼做?