亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python進行數(shù)據(jù)科學工作的簡單入門教程

 更新時間:2015年04月01日 09:58:01   作者:Thomas Wiecki  
這篇文章主要介紹了Python進行數(shù)據(jù)科學工作的簡單入門教程,主要針對Python發(fā)行版Anaconda進行說明,需要的朋友可以參考下

Python擁有著極其豐富且穩(wěn)定的數(shù)據(jù)科學工具環(huán)境。遺憾的是,對不了解的人來說這個環(huán)境猶如叢林一般(cue snake joke)。在這篇文章中,我會一步一步指導你怎么進入這個PyData叢林。

你可能會問,很多現(xiàn)有的PyData包推薦列表怎么樣?我覺得對新手來說提供太多的選擇可能會受不了。因此這里不會提供推薦列表,我要討論的范圍很窄,只集中于10%的工具,但它們可以完成你90%的工作。當你掌握這些必要的工具后,你就可以瀏覽PyData工具的長列表了,選擇自己接下來要使用的。

值得一提的是,我介紹的這幾個工具可以讓你完成一個數(shù)據(jù)科學家日常的絕大部分工作了(比如數(shù)據(jù)輸入輸出、數(shù)據(jù)再加工以及數(shù)據(jù)分析)。
安裝

經(jīng)常會有人過來和我說“我聽說Python很擅長處理數(shù)據(jù)科學,所以我想學一下。但是安裝Python和所有其他模塊就耗費了兩天時間”。安裝Python是很合理的,因為你要用它,但是當你不知道真正需要哪些其他工具時就手動安裝所有的PyData工具,這確實是一項大工程啊。所以我強烈反對這樣做。

幸運的是,Continuum的一伙人創(chuàng)建了Python發(fā)行版Anaconda,它包含了大部分PyData工具包。默認沒有的模塊也可以輕松地通過GUI安裝。這個發(fā)行版適用于所有主流平臺。這樣無需耗費兩天安裝了,可以直接使用它。
IPython Notebook

Python安裝后,大部分人直接啟動并開始學習。這很合理,但遺憾的是又大錯特錯了。我沒見過直接在Python命令行中運行Python科學計算環(huán)境的(因人而異)。相反,可以使用IPython,特別是IPython Notebook,它們都是特別強大的Python shell,被廣泛地使用在PyData領域中。我強烈建議你直接使用IPython Notebook(IPyNB)而不用為其他事所煩擾,你不會后悔的。簡而言之,IPyNB是一個通過瀏覽器訪問的Python shell。它允許你混合編輯代碼、文本和圖形(甚至是交互對象)。本文就是在IPyNB中完成的。在Python的會議中,幾乎所有的演講都使用IPython Notebook。Anaconda中預裝了IPyNB,可以直接使用。下面看下它是什么樣的:

In [1]:

print('Hello World')
Hello World

IPyNB發(fā)展很快——每次在會議中聽(IPyNB的)核心開發(fā)人員演講時,我總被他們想出的新功能所震撼。要了解它的一些先進功能,可以看看下面這個關于IPython小工具的簡短教程。這些小工具可以讓你使用滑動條交互地控制繪圖:

In [1]:
 

from IPython.display import YouTubeVideo
YouTubeVideo('wxVx54ax47s') # 沒錯,它也可以嵌入youtube視頻

Out[1]:
6. IPython Widgets – IPython Notebook Tutorial
Pandas

通常,大家會建議你先學習NumPy(讀作num-pie,不是num-pee),一個支持多維數(shù)組的庫。幾年前肯定得這樣,但現(xiàn)在我?guī)缀醪皇褂肗umPy。因為NumPy越來越成為一個被其他庫所使用核心庫,這些庫通常具有更優(yōu)雅的接口。因此,Pandas成為了處理數(shù)據(jù)所主要使用的庫。它可以以各種格式(包括數(shù)據(jù)庫)輸入輸出數(shù)據(jù)、執(zhí)行join以及其他SQL類似的功能來重塑數(shù)據(jù)、熟練地處理缺失值、支持時間序列、擁有基本繪圖功能和統(tǒng)計功能,等等還有很多。對它所有的特性來說,肯定有一個學習曲線,但我強烈去建議你先看一下大部分文檔。你所投入的時間將使你的數(shù)據(jù)再加工過程更高效,這會帶來上千倍的回報。這里有一些快速技巧會讓你胃口大開的:
In [18]:
 

import pandas as pd
 
df = pd.DataFrame({ 'A' : 1.,
          'B' : pd.Timestamp('20130102'),
          'C' : pd.Series(1, index=list(range(4)), dtype='float32'),
          'D' : pd.Series([1, 2, 1, 2], dtype='int32'),
          'E' : pd.Categorical(["test", "train", "test", "train"]),
          'F' : 'foo' })

In [19]:

Out[19]:

 A B C D E F
0 1 2013-01-02 1 1 test foo
1 1 2013-01-02 1 2 train foo
2 1 2013-01-02 1 1 test foo
3 1 2013-01-02 1 2 train foo

可以通過列名來獲取某一列:

In [17]:
 
df.B
Out[17]:
 
0  2013-01-02
1  2013-01-02
2  2013-01-02
3  2013-01-02
Name: B, dtype: datetime64[ns]
 
Compute the sum of D for each category in E:
按E分類,每類對D求和:
In [21]:
 
df.groupby('E').sum().D
Out[21]:
 
E
test   2
train  4
Name: D, dtype: int32

使用NumPy(或者笨重的Matlab)達到同樣的目的會很麻煩。

還有非常多的用法。不相信的話可以看一下這個教程“10 minutes to pandas”。上面的例子也來自這個教程。
Seaborn

Matplotlib是Python主要的繪圖庫。但是,我不建議你直接使用它,原因與開始不推薦你使用NumPy是一樣的。雖然Matplotlib很強大,它本身就很復雜,你的圖經(jīng)過大量的調整才能變精致。因此,作為替代,我推薦你一開始使用Seaborn。Seaborn本質上使用Matplotlib作為核心庫(就像Pandas對NumPy一樣)。我將簡短地描述下seaborn的優(yōu)點。具體來說,它可以:

  1.     默認情況下就能創(chuàng)建賞心悅目的圖表。(只有一點,默認不是jet colormap
  2.     創(chuàng)建具有統(tǒng)計意義的圖
  3.     能理解pandas的DataFrame類型,所以它們一起可以很好地工作。

雖然anaconda預裝了pandas,卻沒安裝seaborn??梢酝ㄟ^conda install seaborn輕松地安裝。
具有統(tǒng)計意義的圖
In [5]:
 

%matplotlib inline # IPython magic to create plots within cells

In [7]:
 

import seaborn as sns
 
# Load one of the data sets that come with seaborn
tips = sns.load_dataset("tips")
 
sns.jointplot("total_bill", "tip", tips, kind='reg');

20154195429304.jpg (421×423)

如你所見,僅通過一行代碼,我們就創(chuàng)建了一個漂亮復雜的統(tǒng)計圖,其中包含擁有置信區(qū)間的最擬合回歸直線、邊界圖,以及相關系數(shù)。使用matplotlib重新繪制這幅圖的話需要相當多的(丑陋)代碼,包括調用scipy執(zhí)行線性回歸并手動利用線性回歸方程繪制直線(我甚至想不出怎么在邊界繪圖,怎么計算置信區(qū)間)。上面和下面的例子都摘自教程“the tutorial on quantitative linear models”。
與Pandas的DataFrame很好地工作

數(shù)據(jù)有自己的結構。通常我們感興趣的包含不同的組或類(這種情況下使用pandas中groupby的功能會讓人感到很神奇)。比如tips(小費)的數(shù)據(jù)集是這樣的:
In [9]:
 

tips.head()
Out[9]:
 total_bill tip sex smoker day time size
0 16.99 1.01 Female No Sun Dinner 2
1 10.34 1.66 Male No Sun Dinner 3
2 21.01 3.50 Male No Sun Dinner 3
3 23.68 3.31 Male No Sun Dinner 2
4 24.59 3.61 Female No Sun Dinner 4

我們可能想知道吸煙者給的小費是否與不吸煙的人不同。沒有seaborn的話,這需要使用pandas的groupby功能,并通過復雜的代碼繪制線性回歸直線。使用seaborn的話,我們可以給col參數(shù)提供列名,按我們的需要劃分數(shù)據(jù):
In [11]:
 

sns.lmplot("total_bill", "tip", tips, col="smoker");

20154195344640.jpg (690×341)

很整潔吧?

隨著你研究得越深,你可能想更細粒度地控制這些圖表的細節(jié)。因為seaborn只是調用了matplotlib,那時你可能會想學習這個庫。然而,對絕大部分工作來說我還是喜歡使用seaborn。
總結

這篇文章的想法是通過提供部分包來最大化新手使用Python處理數(shù)據(jù)科學的效率。

相關文章

  • 淺談python數(shù)據(jù)類型及其操作

    淺談python數(shù)據(jù)類型及其操作

    今天帶大家了解python數(shù)據(jù)類型的相關知識,文中介紹的非常詳細,對正在學習python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • python中面向對象的注意點概述總結

    python中面向對象的注意點概述總結

    大家好,本篇文章主要講的是python中面向對象的注意點概述總結,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • Python生成器generator用法示例

    Python生成器generator用法示例

    這篇文章主要介紹了Python生成器generator用法,結合實例形式分析了Python生成器generator常見操作技巧與相關注意事項,需要的朋友可以參考下
    2018-08-08
  • 淺談PyQt5中異步刷新UI和Python多線程總結

    淺談PyQt5中異步刷新UI和Python多線程總結

    今天小編就為大家分享一篇淺談PyQt5中異步刷新UI和Python多線程總結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python使用while循環(huán)花式打印乘法表

    Python使用while循環(huán)花式打印乘法表

    今天小編就為大家分享一篇關于Python使用while循環(huán)花式打印乘法表,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Python數(shù)據(jù)處理-導入導出excel數(shù)據(jù)

    Python數(shù)據(jù)處理-導入導出excel數(shù)據(jù)

    這篇文章主要介紹了Python數(shù)據(jù)處理-導入導出excel數(shù)據(jù),Python的一大應用就是數(shù)據(jù)分析了,而數(shù)據(jù)分析中,經(jīng)常碰到需要處理Excel數(shù)據(jù)的情況。這里做一個Python處理Excel數(shù)據(jù)的總結,需要的小伙伴可以參考一下
    2022-01-01
  • python 實現(xiàn)批量xls文件轉csv文件的方法

    python 實現(xiàn)批量xls文件轉csv文件的方法

    今天小編就為大家分享一篇python 實現(xiàn)批量xls文件轉csv文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python3+Appium實現(xiàn)多臺移動設備操作的方法

    Python3+Appium實現(xiàn)多臺移動設備操作的方法

    這篇文章主要介紹了Python3+Appium實現(xiàn)多臺移動設備操作的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Python3 執(zhí)行Linux Bash命令的方法

    Python3 執(zhí)行Linux Bash命令的方法

    今天小編就為大家分享一篇Python3 執(zhí)行Linux Bash命令的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 解讀Django框架中的低層次緩存API

    解讀Django框架中的低層次緩存API

    這篇文章主要介紹了解讀Django框架中的低層次緩存API,Django是最具人氣的Python web開發(fā)框架,需要的朋友可以參考下
    2015-07-07

最新評論