ipython notebook使用教程

最近在使用jupyter notebook,感覺非常舒爽。特別是在本地的瀏覽器上就可以利用jupyter實現在服務器上編程,更是爽歪歪了。

關於如何實現本地瀏覽器上進行服務器上編程參照了這篇文章:Ubuntu環境下Anaconda安裝TensorFlow並配置Jupyter遠程訪問.



1.關於遠程訪問 jupyter notebook 的設置方式

參考: http://blog.csdn.net/u010694764/article/details/53749953

(1)生成配置文件 

  使用如下命令

jupyter notebook --generate-config
  • 1

  會在~/.jupyter目錄下生成一個名爲jupyter_notebook_config.py的配置文件

(2)準備配置的密碼 
  如下所示,

In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'
  • 1
  • 2
  • 3
  • 4
  • 5

  注意保存上面的Out[2]中生成的內容

(3)生成pem和key文件 
  使用如下命令會在當前路徑下生成一個mykey.key和一個mycert.pem文件,這兩個文件會在後面的配置中使用到。下面的命令會生成有效期爲365天的certificate文件。

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem
  • 1

   
(4)配置配置文件 
  這裏主要配置第一步中的jupyter_notebook_config.py文件。需要配置的選項如下:

c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem'
c.NotebookApp.keyfile = u'/absolute/path/to/your/certificate/mykey.key'
# Set ip to '*' to bind on all interfaces (ips) for the public server
c.NotebookApp.ip = '*'
c.NotebookApp.password = u'sha1:bcd259ccf...<your hashed password here>'
c.NotebookApp.open_browser = False

# 指定端口號
c.NotebookApp.port = 8888
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

  配置完成後,在TensorFlow環境下輸入jupyter notebook命令,在遠程中打開Chrome瀏覽器,輸入https://ip:8888就可以遠程訪問並使用TensorFLow了。 
  最終效果如下: 
  這裏寫圖片描述

可能是因爲Linux服務器防火牆的原因設置完後卻鏈接不上,可以通過下面方式解決:

ssh username@remote_address -L127.0.0.1:1234:127.0.0.1:8881

然後在本地瀏覽器上面輸入: 
https://localhost:1234/tree



2. 進度條使用

最近看到 tqdm 這個模塊,用於顯示程序的進度條,感覺真心爽,用法也是非常簡單,如下圖所示:


這樣我們就能夠實時地看到程序的進度而不需要使用print這種低級的方法了,哈哈。


此外,可以使用下面方式來實現進度條顯示。\r 表示 return, 所以能夠實現刷新單行數據。

```python

for i in xrange(1000):
    sys.stdout.write('\rtime %d' % i)
    sys.stdout.flush()
    time.sleep(0.01)

```


3. 快捷鍵使用

使用notebook也有一段時間了,感覺有些快捷鍵還是挺常用的。在非輸入模式下:

h: 顯示所有的快捷鍵

m: 把當前選中的 cell 調整爲 markdown 模式

y: 把當前選中的 cell 調整爲 code 模式

a: 在上方添加一個cell

b: 在下方添加一個cell


4.原文

原文鏈接:http://www.cnblogs.com/giserliu/


在一次師兄(師兄博客地址)的例會彙報中,介紹了ipython notebook,當時覺得很酷炫,漸漸自己使用的時候才發現真的很強大。抽空整理下,找了些資料進行補充,並挨個進行了實現,留個筆記,也歡迎喜歡Python編程的碼農使用。有不全的歡迎補充。

IPython notebook目前已經成爲用Python做教學、計算、科研的一個重要工具。關於其發展,以及介紹,感興趣可以找文獻閱讀。本文主要講解的是它的基本用法和技巧。

IPython Notebook使用瀏覽器作爲界面,向後臺的IPython服務器發送請求,並顯示結果。

Ipython使用了websocket,它是不支持IE的.一般用Chrome就好了.

好, 說了這麼多,我們打開先看下,打開方式很簡單,直接cmd進入到你要創建的目錄下,然後輸入命令:ipython notebook(現在升級了,打開主頁顯示的是jupyter,所以也可以使用jupyter notebook命令)。

可以看到在瀏覽器界面中使用單元(Cell)保存各種信息。Cell有多種類型,經常使用的有表示代碼的Code單元,和表示格式化文本的Markdown單元。

每個代碼單元都有一個輸出區域,在Code單元中輸入代碼,按 Ctrl-Enter 將運行此代碼,代碼中最後一個表達式的值將輸出區域顯示。如果希望屏蔽輸出,可以在最後一條語句之後添加一個分號:”;”。此外,代碼中還可以使用print語句在輸出區域中顯示信息。

與IPython一樣,在cell中可以直接按tab鍵,可以自動補全,超級實用。

Markdown文本

具體可以參考https://maxiang.io/或者其他文檔

  • 文本編輯

Markdown 是一種用來寫作的輕量級「標記語言」,它用簡潔的語法代替排版,而不像一般我們用的字處理軟件 Word 或 Pages 有大量的排版、字體設置。它使我們專心於碼字,用「標記」語法,來代替常見的排版格式。

  • 數學公式

可以使用LaTeX公式

創建行內公式,例如 $\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N$。

或者塊級公式: $$ x = \dfrac{-b \pm \sqrt{b^2 - 4ac}}{2a$$

  • 代碼塊

可以直接在頁面輸出代碼塊,只需要在前後加上```代碼塊 ```即可。

  • 表格

可以使用markdown標記生成表格

嵌入圖片

嵌入音樂

可以嵌入本地音樂和網絡音樂

嵌入視頻

網絡視頻

本地視頻

嵌入網頁

嵌入鏈接

魔法命令

所有以%開頭的方法,都是所謂的魔術方法(Magic function),也就是ipython內置的一些方法。需要注意的是,魔術方法有%和%%之分,比如%timeit%%timeit。在ipython中有專門的叫法,前者叫line magic後者叫cell magic。顧名思義,前者是專門針對一行的命令,後者針對多行的命令。

通過%lsmagis可以查看所有的magic命令,使用?或者??可以查看該命令的信息,後者可以查看源碼。如: %alias?,會出現該方法的描述。

接下來對一些常用的進行展示:

  • 加載文件

  • 執行文件

run命令還可以附加選項,常用的有-t選項,這個會在腳本執行完後,打印出執行的cpu timings。如果指定了-t選項,後面可以跟一個-Nx,x代表一個數字。表示重複執行x次。

另外比較好用的是-d選項,這個會在pdb中運行腳本。後跟-bxx打斷點。

還有一個-p選項,這個選項會開啓python profiler,從而打印出詳細的執行時間、函數調用等等信息供優化參考。

  • 嵌入繪圖

在網頁中嵌入繪圖庫繪製的圖形,可以使用%matplotlib inline或者%pylab inline啓動這個功能。還可以啓動ipython後臺服務器時,在命令行下輸入ipython notebook --matplotlib inline或ipython notebook --pylab inline。這樣的話它就會導入pylab(mathplotlib)庫.而且顯示圖片時可以嵌在網頁中的。

  • 執行效率

 這個命令用來測試一條命令執行的時間,一般而且,會重複100次運行這個命令,然後取出最好的3個結果取平均值。

還可以指定選項。

-n指定重複次數,默認100

-r是取多少個結果的平均值,默認是3

 

還有很多的magic命令,就不一一列舉,感興趣可以自己去嘗試。


 

參考:http://hyry.dip.jp/tech/slice/slice.html/35

http://kochiya.me/www/posts/Ipython!.html

http://www.cnblogs.com/zhuangzhuang1988/archive/2012/11/19/2777195.html

http://nbviewer.ipython.org/github/ipython/ipython/blob/3.x/examples/Index.ipynb

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章