為什么使用Python進行數據分析:
1 Python大量的庫為數據分析和處理提供了完整的工具集
2 比起R和Matlab等其他主要用於數據分析的編程語言,Python更全能
3 Python庫一直在增加,算法的實現采用更具有創新性的方法
4 Python能和很多語言對接,例如高效的C語言
===================================
什么是Ipython?
在數據分析時用的是Ipython。
PyCharm也是一個終端(代碼從上至下執行,如果代碼量大不利於調試)。
Ipython是一個性能強大的終端(終端有一個特點,寫一行執行一行)。
Ipython是以瀏覽器的方式呈現
Ipython shell:功能強大的交互式shell $ipython
Ipython notebook:(主要使用這個工具)集文本、代碼、圖像、公式的展現於一體的超級python web界面。在瀏覽器中編寫代碼。
從ipython4.0 開始改名為 Jupyter notebook
===================================
什么是 Jupyter?
Ipython notebook:集文本、代碼、圖像、公式的展現於一體的超級python web界面。
===================================
Ipython使用
ipthon有許多python交互式沒有的功能,比如,具有tab補全,對象自省,強大的歷史機制,內嵌的源代碼編輯,集成python調試器,斷點調試等等。ipython和python的最大區別在於,ipython會對命令提示符的每一行進行編號。
pip install jupyter notebook 安裝需要的jupyter模塊
啟動程序:
打開windows 終端,輸入 jupyter notebook 命令並回車。


並自動打開瀏覽器。


現在已經進入jupyter的開發環境了。這個終端不能關閉哦,最小化就行了。
打開地址為當前bash的目錄,默認的根目錄;
瀏覽器地址為http://localhost:8888/
通過ctrl + c 終止 jupyter程序。
然后就是在web頁面上進行文件夾的創建、改名,ipython notebook的創建和修改名稱。新建的ipython notebook如下圖所示:


Code模式是代碼,然后就可以在編輯框中輸入代碼,執行代碼的方式如下:
Ctrl + Enter 停留在當前行
Alt + Enter 會新插入一行
Shift + Enter 跳到下一行
Run按鈕
Markdown是注釋,可以進行注釋的書寫。其余的Raw NBConvert、Heading這兩個用不到。
Y:單元轉入代碼狀態
M:單元轉入markdown狀態
Shift-Tab:提示,看函數的參數信息,比較有用。
IPython的幫助文檔
1 使用help()


雙擊輸出左側,收起輸出內容,雙擊'...',展示合並的內容。
在代碼輸入欄下邊添加一個輸入欄,選中輸入欄,b
在代碼輸入欄上邊添加一個輸入欄,選中輸入欄,a
想要刪除一個輸入欄,選中輸入欄,dd
2 使用?


??可以將函數的源碼顯示出來

兩個問號把自定義的源碼顯示出來了。


Tab自動補全:


IPython 魔法命令:
1 運行外部Python文件,之前寫的代碼可以拿過來執行
使用下面命令運行外部python文件(默認是當前目錄,最好加上絕對路徑,就可以執行任何路徑下的文件了)
%run *.py
編輯的外部文件內容:


運行這個外部文件:


需要注意,當我們使用魔法命令執行了一個外部文件時,該文件的函數就能在當前會話中使用。相當於把外部文件中的所有方法全部導入到Jupyter notebook中。
2
運行計時 代碼運行效率一目了然
用下面的命令計算statement的運行時間:
%time statement


用下面的命令計算statement的平均運行時間:
%timeit statement
timeit會多次運行statement,最后得到一個更為精確的預期運行時間
可以使用兩個%來測試多行對嗎的平均運行時間:
%%timeit
statement1
statement2
statement3
...
瀏覽器只是起到接受用戶輸入,顯示終端輸出的作用,代碼的運行還是在終端上進行的。
3 查看當前會話中的所有變量與函數
%who


查看當前會話的所有變量與函數名稱的詳細信息:
%whos


4 執行Linux命令 前提是,你的終端試運行在linux系統上的。
! echo "hello"

在linux命令之前加上!,即可在ipython當中執行linux指令。
注意會將標准輸入以字符串形式返回。

5 更多魔法命令
%lsmagic


最后強調一下,百看不如一練。