天天看點

資料分析1--基本概念

一、Anconda的相關操作

1、Anconda的下載下傳:

Anaconda是Python的一個免費發行版本,适合在資料科學與機器學習領域的開發。其內建了Python解釋器,同時也包含很多資料科學計算的軟體包與開發工具。

下載下傳位址:https://www.anaconda.com/download/

2、虛拟環境的操作:

建立虛拟環境:

conda create -n 虛拟環境名稱 python=版本号
           

如下:

資料分析1--基本概念

删除虛拟環境:

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、檢視幫助

可以使用?或者??來檢視幫助資訊,如下所示:

資料分析1--基本概念

2、指令補全

使用TAB鍵

3、魔法指令

魔法指令分為%與%%兩種形式,即在相應的指令前使用%或%%字首。但并非所有的魔法指令都支援這兩種形式。

其中:%行模式,%%單元格模式

1)lsmagic:顯示所有可用的魔法指令

資料分析1--基本概念

2)run:運作外部Python檔案,運作結束後,外部檔案中定義的名稱會得到保留。格式為%run 檔案路徑。如果是通過Python來運作程式,則程式結束後,檔案中定義的名稱不會得到保留。如下

在檔案中寫入如下語句:x=1

資料分析1--基本概念

可以了解為将外部檔案中的檔案代碼複制在ipython解釋器上運作

3)who:顯示目前自定義的變量,方法等名稱,不會顯示IPython解釋器内建的名稱。當指定類型清單時,僅類型比對類型清單中的名稱才會顯示

資料分析1--基本概念

4)whos:與who類似,但是會顯示目前名稱的詳細資訊。

資料分析1--基本概念

5)time:執行語句計時功能。語句隻執行一次。

資料分析1--基本概念

6)timeit:雖然time能夠執行計時功能,但是如果語句過于簡單,很可能計時結果為0。此時,我們可以使用循環多次執行。但更友善的方式是,使用timeit來完成多次執行的操作。

timeit支援行模式與單元格模式。在單元格模式下,第一行語句(與魔法指令在同一行的語句)為設定(初始化)語句,作用是可以用來定義變量供後續的代碼使用。設定語句會執行,但是不參與計時。第二行至整個單元格末尾的語句會執行并參與計時。我們可以使用-n來指定每論測試執行的次數(預設會選擇最佳的次數),-r指定執行的測試輪數(預設為7)。

timeit的單元格中,如果需要對外面的變量進行修改,需要使用global。

資料分析1--基本概念

資料顯示格式為:均值±标準差

資料分析1--基本概念

使用單元格模式

資料分析1--基本概念
資料分析1--基本概念

7)automagic:automagic指令用來設定在使用魔法指令時,是否需要使用%字首。預設情況下,automagic是開啟的,使用魔法指令可以不用使用%字首。每次執行automagic指令時,就會切換開啟 / 關閉狀态。其行為類似于toggle button。

當automagic處于開啟狀态,如果我們定義了與魔法指令相同名稱的變量(或方法,類)時,通路的将是我們自定義的名稱。為了避免不必要的混淆,建議在使用魔法指令時,總是使用%字首.

資料分析1--基本概念

8)history:類似與Linux的history指令,顯示IPython的指令執行曆史記錄。

%history
           

9)writefile:将單元格的内容寫入到檔案中。如果檔案不存在則建立,如果檔案存在,則覆寫檔案。如果指定-a選項,則追加内容(不覆寫)。

格式: %%writefile [-a] filename

資料分析1--基本概念
資料分析1--基本概念

10)prun:通過Python的代碼分析器,來分析程式(語句)的執行時間。結果會根據total time(花費時間)進行倒序排列。通過prun分析功能,我們就可以發現程式中最耗時的部分,進而可以針對性的進行優化。

ncalls 函數調用次數。

tottime 總共調用消耗的時間(不包括子函數調用消耗的時間)。

percall 每次調用消耗的時間。

cumtime 總共調用消耗的時間(包括子函數調用消耗的時間)。

percall 每次調用消耗的時間。

filename:lineno(function) 檔案名:行号(函數名)

資料分析1--基本概念

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載入,才能使用。

資料分析1--基本概念

11)memit:分析語句的記憶體使用情況。memit支援行模式與單元格模式。在單元格模式下,第一行語句(與魔法指令在同一行的語句)為設定(初始化)語句,作用是可以用來定義變量供後續的代碼使用。設定語句會執行,但不參與計算記憶體使用。第二行至整個單元格末尾的語句會參與計算記憶體

說明:

memit不是IPython内置的,需要安裝memory_profiler子產品。

安裝後,需要通過%load_ext memory_profiler載入,才能使用

資料分析1--基本概念

12)mpun:逐行分析語句的記憶體使用情況。分析結果列如下:

Line # 行号。

Mem usage 記憶體使用大小。

Increment 記憶體增量。

Line Content 代碼内容。

%mprun -f 分析函數1 -f 分析函數2 …… 啟動語句
           

說明:

mprun不是IPython内置的,需要安裝memory_profiler子產品

安裝後,需要通過%load_ext memory_profiler載入,才能使用

mprun測試的函數必須定義在獨立的子產品中,不能定義在互動式環境中。

如果需要重新加載子產品,可以調用importlib子產品提供的reload函數來實作。

資料分析1--基本概念

三、執行系統指令

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的單元格分為兩種模式:

指令模式 單元格處于選中狀态,此時單元格左側為粗藍色線條,其餘為細灰色線條

編輯模式 單元格處于編輯狀态,此時單元格左側為粗綠色線條,其餘為細綠色線條。(此時右上角會出現鉛筆圖示)

常用快捷鍵

資料分析1--基本概念

可線上框内按鈕檢視所有快捷鍵

指令模式下的快捷鍵

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級标題。

資料分析1--基本概念
資料分析1--基本概念

無序清單:

無序清單可以使用*,-或+後跟随一個空格來表示。也可以通過不同的符号混合表示多級清單

資料分析1--基本概念
資料分析1--基本概念

有序清單:

有序清單使用數字跟随一個點(.)表示

資料分析1--基本概念
資料分析1--基本概念

換行

使用兩個或以上的空白符

粗體/斜體

使用**或__包圍的字型為粗體。使用*或_包圍的字型為斜體。

資料分析1--基本概念
資料分析1--基本概念

删除線

使用~~包圍的字型會帶有删除線效果

資料分析1--基本概念
資料分析1--基本概念

代碼

資料分析1--基本概念
資料分析1--基本概念
資料分析1--基本概念
資料分析1--基本概念
資料分析1--基本概念

引用

使用>字首來引用一段内容。

資料分析1--基本概念
資料分析1--基本概念

分割線

使用***或者—來加入分割線

資料分析1--基本概念
資料分析1--基本概念

連結與圖檔

資料分析1--基本概念
資料分析1--基本概念
資料分析1--基本概念
資料分析1--基本概念
資料分析1--基本概念

Latex

LaTex是一個檔案準備系統(document preparation system),用來進行排版,支援複雜的數學公式表示

Latex使用

$公式$

或者

$$公式$$

的格式

LaTex線上編輯:http://latex.codecogs.com/eqneditor/editor.php

資料分析1--基本概念
資料分析1--基本概念

輸出:

資料分析1--基本概念
上一篇: ETL詳解
下一篇: ETL:etl簡介

繼續閱讀