Anaconda入門:Navigator褐缠、Spyder和Jupyter Notebook

Anaconda安裝后脱货,可以從菜單中看到它包含幾個應(yīng)用程序岛都,其中Anaconda Navigator是這幾個程序的導(dǎo)航入口。

1.Anaconda Navigator是什么振峻?

Anaconda Navigator是Anaconda發(fā)行包中包含的桌面圖形界面臼疫,可以用來方便地啟動應(yīng)用、方便的管理conda包扣孟、環(huán)境和頻道烫堤,不需要使用命令行的命令。Navigator可以從Anaconda Cloud或本地Anaconda倉庫中搜索包。提供了Windwos鸽斟、maxOS和Linux版本拔创。


Anaconda Navigator
Anaconda Navigator

2.通過Navigator可以啟動那些應(yīng)用?

Anaconda安裝后富蓄,缺省的包含下列應(yīng)用:

  • Jupyter Notebook
  • Orange App
  • QTConsole
  • Glueviz
  • Spyder
  • RStudio

3.如何使用Navigator運(yùn)行代碼伏蚊?

最簡單的方式就是運(yùn)行Spyder. 從Navigator的Home頁面,點(diǎn)擊Spyder, 就可以啟動它并寫代碼并運(yùn)行它了格粪。


Spyder
Spyder

4.Jupyter Notebook介紹

文學(xué)編程

在介紹 Jupyter Notebook 之前晒他,讓我們先來看一個概念:文學(xué)編程 ( Literate programming ),這是由 Donald Knuth 提出的編程方法恬口。傳統(tǒng)的結(jié)構(gòu)化編程敞曹,人們需要按計算機(jī)的邏輯順序來編寫代碼;與此相反疆导,文學(xué)編程則可以讓人們按照自己的思維邏輯來開發(fā)程序赁项。

簡單來說,文學(xué)編程的讀者不是機(jī)器澈段,而是人悠菜。 我們從寫出讓機(jī)器讀懂的代碼,過渡到向人們解說如何讓機(jī)器實(shí)現(xiàn)我們的想法败富,其中除了代碼悔醋,更多的是敘述性的文字、圖表等內(nèi)容兽叮。這么一看芬骄,這不正是數(shù)據(jù)分析人員所需要的編碼風(fēng)格么?不僅要當(dāng)好一個程序員鹦聪,還得當(dāng)好一個作家账阻。那么 Jupyter Notebook 就是不可或缺的一款集編程和寫作于一體的效率工具。

歷史傳承

也許說到 Jupyter 你會覺得陌生泽本,但想必你或多或少聽過鼎鼎大名的 IPython淘太。其實(shí)Jupyter 脫胎于 IPython 項目,IPython 顧名思義规丽,是專注于 Python 的項目蒲牧,但隨著項目發(fā)展壯大,已經(jīng)不僅僅局限于 Python 這一種編程語言了嘁捷。Jupyter 的名字就很好地釋義了這一發(fā)展過程造成,它是 Julia、Python 以及 R 語言的組合雄嚣,字形相近于木星(Jupiter)晒屎,而且現(xiàn)在支持的語言也遠(yuǎn)超這三種了喘蟆。

優(yōu)點(diǎn)

以下列舉了 Jupyter Notebook 的眾多優(yōu)點(diǎn):

  • 極其適合數(shù)據(jù)分析。

想象一下如下混亂的場景:你在終端中運(yùn)行程序鼓鲁,可視化結(jié)果卻顯示在另一個窗口中蕴轨,包含函數(shù)和類的腳本存在其他文檔中,更可惡的是你還需另外寫一份說明文檔來解釋程序如何執(zhí)行以及結(jié)果如何骇吭。此時 Jupyter Notebook 從天而降橙弱,將所有內(nèi)容收歸一處,你是不是頓覺靈臺清明燥狰,思路更加清晰了呢棘脐?

  • 支持多語言。

也許你習(xí)慣使用 R 語言來做數(shù)據(jù)分析龙致,或者是想用學(xué)術(shù)界常用的 MATLAB 和 Mathematica蛀缝,這些都不成問題,只要安裝相對應(yīng)的核(kernel)即可目代。

  • 分享便捷屈梁。

支持以網(wǎng)頁的形式分享,GitHub 中天然支持 Notebook 展示榛了,也可以通過 nbviewer 分享你的文檔在讶。當(dāng)然也支持導(dǎo)出成 HTML、Markdown 霜大、PDF 等多種格式的文檔构哺。

  • 遠(yuǎn)程運(yùn)行。

在任何地點(diǎn)都可以通過網(wǎng)絡(luò)鏈接遠(yuǎn)程服務(wù)器來實(shí)現(xiàn)運(yùn)算僧诚,這里給出一個遠(yuǎn)程運(yùn)行的例子遮婶,可以體驗(yàn)一下 Jupyter Notebook。

  • 交互式展現(xiàn)湖笨。

不僅可以輸出圖片、視頻蹦骑、數(shù)學(xué)公式慈省,甚至可以呈現(xiàn)一些互動的可視化內(nèi)容,比如可以縮放的地圖或者是可以旋轉(zhuǎn)的三維模型眠菇。這就需要交互式插件(Interactive widgets)來支持边败,更多內(nèi)容請參考這里

運(yùn)行

如果使用 Anaconda捎废,可以在其 Navigator 圖形界面中點(diǎn)擊打開 Notebook笑窜。但是最快捷的方法還是在命令行中輸入:

jupyter notebook

此時你的 Web 瀏覽器被自動打開,顯示文件目錄登疗。通過點(diǎn)擊右上角的 new 創(chuàng)建新文檔排截。


jupyter notebook
jupyter notebook

而關(guān)閉 notebook 文檔可以通過選擇文件名前的復(fù)選框后嫌蚤,點(diǎn)擊 Shutdown 按鈕實(shí)現(xiàn)。如果要關(guān)閉整個服務(wù)断傲,則在原來的終端中按 Control + C 兩次脱吱。

界面

Notebook 文檔是由一系列單元(Cell)構(gòu)成,主要有兩種形式的單元:

  • 代碼單元:這里是你編寫代碼的地方认罩,通過按 Shift + Enter 運(yùn)行代碼箱蝠,其結(jié)果顯示在本單元下方。代碼單元左邊有 In [1]: 這樣的序列標(biāo)記垦垂,方便人們查看代碼的執(zhí)行次序宦搬。

  • Markdown 單元:在這里對文本進(jìn)行編輯,采用 markdown 的語法規(guī)范劫拗,可以設(shè)置文本格式床三、插入鏈接、圖片甚至數(shù)學(xué)公式杨幼。同樣使用 Shift + Enter 運(yùn)行 markdown 單元來顯示格式化的文本撇簿。

jupyter notebook edit
jupyter notebook edit

類似于 Linux 的 Vim 編輯器,在 notebook 中也有兩種模式:

  • 編輯模式:編輯文本和代碼差购。選中單元并按 Enter 鍵進(jìn)入編輯模式四瘫,此時單元左側(cè)顯示綠色豎線。
  • 命令模式:用于執(zhí)行鍵盤輸入的快捷命令欲逃。通過 Esc 鍵進(jìn)入命令模式找蜜,此時單元左側(cè)顯示藍(lán)色豎線。

如果要使用快捷鍵稳析,首先按 Esc 鍵進(jìn)入命令模式洗做,然后按相應(yīng)的鍵實(shí)現(xiàn)對文檔的操作。比如切換成代碼單元(Y)或 markdown 單元(M)彰居,或者在本單元的下方增加一單元(B)诚纸。查看所有快捷命令可以按H。

盡管一開始需要花費(fèi)一些學(xué)習(xí)成本陈惰,但熟練使用快捷鍵將大大提高工作效率畦徘。試想你在鍵盤上十指如飛時,如果還需要通過鼠標(biāo)來操作文檔抬闯,是不是很影響思考速度呢井辆?

Jupyter Notebook 進(jìn)階功能

數(shù)學(xué)公式編輯

如果你曾做過嚴(yán)肅的學(xué)術(shù)研究,一定對 LaTeX 并不陌生溶握,這簡直是寫科研論文的必備工具杯缺,不但能實(shí)現(xiàn)嚴(yán)格的文檔排版,而且能編輯復(fù)雜的數(shù)學(xué)公式睡榆。在 Jupyter Notebook 的 markdown 單元中我們也可以使用 LaTeX 的語法來插入數(shù)學(xué)公式萍肆。

在文本行中插入數(shù)學(xué)公式袍榆,使用一對 $符號,比如質(zhì)能方程 $E = mc^2$匾鸥。如果要插入一個數(shù)學(xué)區(qū)塊蜡塌,則使用一對美元$符號。比如下面公式表示 z=x/y:

$ $ z = frac{x}{y} $ $

如何在 notebook 中使用 LaTeX勿负,可進(jìn)一步參考 A Primer on Using LaTeX in Jupyter Notebooks 這篇文章馏艾。

幻燈片制作

既然Jupyter Notebook 擅長展示數(shù)據(jù)分析的過程,除了通過網(wǎng)頁形式分享外奴愉,當(dāng)然也可以將其制作成幻燈片的形式琅摩。這里有一個幻燈片示例供參考,其制作風(fēng)格簡潔明晰锭硼。

那么如何用 Jupyter Notebook 制作幻燈片呢房资?首先在 notebook 的菜單欄選擇 View > Cell Toolbar > Slideshow,這時在文檔的每個單元右上角顯示了 Slide Type 的選項檀头。通過設(shè)置不同的類型轰异,來控制幻燈片的格式。有如下5中類型:

  • Slide:主頁面暑始,通過按左右方向鍵進(jìn)行切換搭独。
  • Sub-Slide:副頁面,通過按上下方向鍵進(jìn)行切換廊镜。
  • Fragment:一開始是隱藏的牙肝,按空格鍵或方向鍵后顯示,實(shí)現(xiàn)動態(tài)效果嗤朴。
  • Skip:在幻燈片中不顯示的單元配椭。
  • Notes:作為演講者的備忘筆記,也不在幻燈片中顯示雹姊。


    jupyter notebook slide
    jupyter notebook slide

當(dāng)編寫好了幻燈片形式的 notebook股缸,如何來演示呢?這時需要使用 nbconvert:

jupyter nbconvert notebook.ipynb --to slides --post serve

在命令行中敲入上述代碼后容为,瀏覽器會自動打開相應(yīng)的幻燈片乓序。

魔術(shù)關(guān)鍵字

魔術(shù)關(guān)鍵字(magic keywords),正如其名坎背,是用于控制 notebook 的特殊的命令。它們運(yùn)行在代碼單元中寄雀,以 % 或者 %% 開頭得滤,前者控制一行,后者控制整個單元盒犹。

比如懂更,要得到代碼運(yùn)行的時間眨业,則可以使用 %timeit;如果要在文檔中顯示 matplotlib 包生成的圖形沮协,則使用 % matplotlib inline龄捡;如果要做代碼調(diào)試,則使用 %pdb慷暂。但注意這些命令大多是在Python kernel 中適用的聘殖,其他 kernel 大多不適用。有許許多多的魔術(shù)關(guān)鍵字可以使用行瑞,更詳細(xì)的清單請參考 Built-in magic commands 奸腺。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市血久,隨后出現(xiàn)的幾起案子突照,更是在濱河造成了極大的恐慌,老刑警劉巖氧吐,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件讹蘑,死亡現(xiàn)場離奇詭異,居然都是意外死亡筑舅,警方通過查閱死者的電腦和手機(jī)座慰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來豁翎,“玉大人角骤,你說我怎么就攤上這事⌒陌” “怎么了邦尊?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長优烧。 經(jīng)常有香客問我蝉揍,道長,這世上最難降的妖魔是什么畦娄? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任又沾,我火速辦了婚禮,結(jié)果婚禮上熙卡,老公的妹妹穿的比我還像新娘杖刷。我一直安慰自己,他們只是感情好驳癌,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布滑燃。 她就那樣靜靜地躺著,像睡著了一般颓鲜。 火紅的嫁衣襯著肌膚如雪表窘。 梳的紋絲不亂的頭發(fā)上典予,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機(jī)與錄音乐严,去河邊找鬼瘤袖。 笑死,一個胖子當(dāng)著我的面吹牛昂验,可吹牛的內(nèi)容都是我干的捂敌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼凛篙,長吁一口氣:“原來是場噩夢啊……” “哼黍匾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起呛梆,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤锐涯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后填物,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纹腌,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年滞磺,在試婚紗的時候發(fā)現(xiàn)自己被綠了升薯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡击困,死狀恐怖涎劈,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情阅茶,我是刑警寧澤蛛枚,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站脸哀,受9級特大地震影響蹦浦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜撞蜂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一盲镶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蝌诡,春花似錦溉贿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至闽寡,卻和暖如春代兵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背爷狈。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工植影, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人涎永。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓思币,卻偏偏與公主長得像,于是被迫代替她去往敵國和親羡微。 傳聞我的和親對象是個殘疾皇子谷饿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容