一、Anconda的相關操作
1、Anconda的下載下傳:
Anaconda是Python的一個免費發行版本,适合在資料科學與機器學習領域的開發。其內建了Python解釋器,同時也包含很多資料科學計算的軟體包與開發工具。
下載下傳位址:https://www.anaconda.com/download/
2、虛拟環境的操作:
建立虛拟環境:
conda create -n 虛拟環境名稱 python=版本号
如下:
删除虛拟環境:
conda remove -n 虛拟環境名稱 --all
如:
激活(進入)虛拟環境:
source activate 虛拟環境名稱
離開虛拟環境:
source deactivate
相關說明:
當建立虛拟環境後,就會在Anaconda安裝目錄下的envs目錄下,建立虛拟環境相關的檔案。
在Linux環境下,需要使用source,Windows需要省去source。
建立虛拟環境後,虛拟環境中僅會安裝一些必須的軟體包,例如pip等。如果需要安裝Anaconda所有的庫,需要:
conda create -n 虛拟環境名稱 python=版本号 anaconda
3、conda包管理器
conda是一個包管理器,可以用來下載下傳(删除)Python軟體包(與pip有些類似)。
安裝包:
conda install 包
解除安裝包:
conda remove 包
更新包:
conda update 包
檢視包:
4、Anaconda Navigator
Anaconda Navigator是Anaconda提供的一款圖形化界面工具,我們可以友善的實作虛拟環境以及軟體包的管理。
5、Ipython
IPython(Interactive Python),是一款增強型Python解釋器,在Python的基礎上,提供了很多額外的功能。IPython可以使用如下指令安裝:
pip install ipython
二、相關指令
1、檢視幫助
可以使用?或者??來檢視幫助資訊,如下所示:
2、指令補全
使用TAB鍵
3、魔法指令
魔法指令分為%與%%兩種形式,即在相應的指令前使用%或%%字首。但并非所有的魔法指令都支援這兩種形式。
其中:%行模式,%%單元格模式
1)lsmagic:顯示所有可用的魔法指令
2)run:運作外部Python檔案,運作結束後,外部檔案中定義的名稱會得到保留。格式為%run 檔案路徑。如果是通過Python來運作程式,則程式結束後,檔案中定義的名稱不會得到保留。如下
在檔案中寫入如下語句:x=1
可以了解為将外部檔案中的檔案代碼複制在ipython解釋器上運作
3)who:顯示目前自定義的變量,方法等名稱,不會顯示IPython解釋器内建的名稱。當指定類型清單時,僅類型比對類型清單中的名稱才會顯示
4)whos:與who類似,但是會顯示目前名稱的詳細資訊。
5)time:執行語句計時功能。語句隻執行一次。
6)timeit:雖然time能夠執行計時功能,但是如果語句過于簡單,很可能計時結果為0。此時,我們可以使用循環多次執行。但更友善的方式是,使用timeit來完成多次執行的操作。
timeit支援行模式與單元格模式。在單元格模式下,第一行語句(與魔法指令在同一行的語句)為設定(初始化)語句,作用是可以用來定義變量供後續的代碼使用。設定語句會執行,但是不參與計時。第二行至整個單元格末尾的語句會執行并參與計時。我們可以使用-n來指定每論測試執行的次數(預設會選擇最佳的次數),-r指定執行的測試輪數(預設為7)。
timeit的單元格中,如果需要對外面的變量進行修改,需要使用global。
資料顯示格式為:均值±标準差
使用單元格模式
7)automagic:automagic指令用來設定在使用魔法指令時,是否需要使用%字首。預設情況下,automagic是開啟的,使用魔法指令可以不用使用%字首。每次執行automagic指令時,就會切換開啟 / 關閉狀态。其行為類似于toggle button。
當automagic處于開啟狀态,如果我們定義了與魔法指令相同名稱的變量(或方法,類)時,通路的将是我們自定義的名稱。為了避免不必要的混淆,建議在使用魔法指令時,總是使用%字首.
8)history:類似與Linux的history指令,顯示IPython的指令執行曆史記錄。
%history
9)writefile:将單元格的内容寫入到檔案中。如果檔案不存在則建立,如果檔案存在,則覆寫檔案。如果指定-a選項,則追加内容(不覆寫)。
格式: %%writefile [-a] filename
10)prun:通過Python的代碼分析器,來分析程式(語句)的執行時間。結果會根據total time(花費時間)進行倒序排列。通過prun分析功能,我們就可以發現程式中最耗時的部分,進而可以針對性的進行優化。
ncalls 函數調用次數。
tottime 總共調用消耗的時間(不包括子函數調用消耗的時間)。
percall 每次調用消耗的時間。
cumtime 總共調用消耗的時間(包括子函數調用消耗的時間)。
percall 每次調用消耗的時間。
filename:lineno(function) 檔案名:行号(函數名)
11)lrun:lprun可以逐行對程式進行分析,相對與prun的函數分析,會更加細緻。
格式:%lprun -f 函數1 [-f 函數2, ……] <執行語句>
%lprun -f 分析時間的函數1 -f 分析時間的函數2 …… 啟動語句
其中-f指定要分析的函數。分析結果列如下:
Line # 行号。
Hits 執行次數。
Time 總共消耗時間。
Per Hit 單次執行消耗的時間。
% Time 消耗的時間百分比。
Line Contents 行内容
說明:
lprun不是IPython内置的,需要安裝line_profiler子產品。
安裝後,需要通過%load_ext line_profiler載入,才能使用。
11)memit:分析語句的記憶體使用情況。memit支援行模式與單元格模式。在單元格模式下,第一行語句(與魔法指令在同一行的語句)為設定(初始化)語句,作用是可以用來定義變量供後續的代碼使用。設定語句會執行,但不參與計算記憶體使用。第二行至整個單元格末尾的語句會參與計算記憶體
說明:
memit不是IPython内置的,需要安裝memory_profiler子產品。
安裝後,需要通過%load_ext memory_profiler載入,才能使用
12)mpun:逐行分析語句的記憶體使用情況。分析結果列如下:
Line # 行号。
Mem usage 記憶體使用大小。
Increment 記憶體增量。
Line Content 代碼内容。
%mprun -f 分析函數1 -f 分析函數2 …… 啟動語句
說明:
mprun不是IPython内置的,需要安裝memory_profiler子產品
安裝後,需要通過%load_ext memory_profiler載入,才能使用
mprun測試的函數必須定義在獨立的子產品中,不能定義在互動式環境中。
如果需要重新加載子產品,可以調用importlib子產品提供的reload函數來實作。
三、執行系統指令
IPython可以執行系統指令,隻需使用!字首即可。 例如:!cd,!dir等。
!conda install memroy_profiler
四、jupyter notebook使用
jupyter notebook是一款開源的Web應用程式,該應用程式可以用來建立并共享實施代碼,方程式,可視化以及文本說明。jupyter notebook基于IPython解釋器,是一個基于Web的互動式計算環境。從不正規的角度講,可以将jupyter notebook看成是一個Web版的IPython,實際上,jupyter notebook之前的名稱就叫做IPython notebook。
jupyter notebook的啟動:
啟動jupyter可以使用:jupyter notebook
當執行指令後,就會啟動jupyter服務,同時打開浏覽器頁面,顯示jupyter的home頁面。預設情況下,會使用目前所在的目錄作為根目錄
可以用如下格式切換jupyter notebook啟動時的根目錄
jupyter notebook -notebook=e:/jupyter_notebook
上傳與建立檔案
如果我們需要打開的檔案不在目前的主目錄下,我們可以點選upload進行上傳
我們也可以點選new建立檔案或目錄
單元格:
jupyter notebook文檔由一些列單元格組成,我們可以在單元格中輸入相關的代碼或者說明文字。單元格有以下幾種類型:
code 代碼單元格,用來編寫程式。
Markdown 支援Markdown文法的單元格,用來編寫描述程式的文字。
Raw NBConvert 原生類型單元格,内容會原樣顯示。在使用NBConvert轉換後才會顯示成特殊的格式。
Heading 标題單元格,已經不在支援使用。
指令模式與編輯模式
jupyter notebook的單元格分為兩種模式:
指令模式 單元格處于選中狀态,此時單元格左側為粗藍色線條,其餘為細灰色線條
編輯模式 單元格處于編輯狀态,此時單元格左側為粗綠色線條,其餘為細綠色線條。(此時右上角會出現鉛筆圖示)
常用快捷鍵
可線上框内按鈕檢視所有快捷鍵
指令模式下的快捷鍵
Y 單元格轉換成code類型。
M 單元格轉換成Markdown類型。
R 單元格轉換成Raw NBConvert類型。
Enter 進入編輯模式。
A 在目前單元格上方插入新單元格。
B 在目前單元格下方插入新單元格。
C 複制目前單元格。
D(兩次) 删除目前單元格。
V 粘貼到目前單元格的下方。
Shift + V 粘貼到目前單元格的上方。
Z 撤銷删除。
編輯模式下的快捷鍵
Tab 代碼補全
Shift + Tab 顯示doc文檔資訊。----會以懸浮窗的方式展現
Esc 進入指令模式。
通用模式下的快捷鍵:
Ctrl + Enter 運作單元格,然後該單元格處于指令模式。
Shift + Enter 運作單元格,并切換到下一個單元格,如果下方沒有單元格,則會建立一個單元格。
Alt + Enter 運作單元格,并在下方新增一個單元格。
五、Markdown的相關說明
Markdown是一種使用純文字格式文法的輕量級标記語言,它允許人們使用易讀易寫的純文字格式編寫文檔,然後轉換成格式豐富的HTML頁面。Markdown同時也支援HTML标簽。在Markdown類型的單元格中,支援使用Markdown文法與LaTex數學公式
标題:
标題可以使用1 ~ 6個#跟随一個空格來表示1 ~ 6級标題。
無序清單:
無序清單可以使用*,-或+後跟随一個空格來表示。也可以通過不同的符号混合表示多級清單
有序清單:
有序清單使用數字跟随一個點(.)表示
換行
使用兩個或以上的空白符
粗體/斜體
使用**或__包圍的字型為粗體。使用*或_包圍的字型為斜體。
删除線
使用~~包圍的字型會帶有删除線效果
代碼
引用
使用>字首來引用一段内容。
分割線
使用***或者—來加入分割線
連結與圖檔
Latex
LaTex是一個檔案準備系統(document preparation system),用來進行排版,支援複雜的數學公式表示
Latex使用
$公式$
或者
$$公式$$
的格式
LaTex線上編輯:http://latex.codecogs.com/eqneditor/editor.php
輸出: