學(xué)AI,好工作 就找北大青鳥
關(guān)注小青 聽課做題,輕松學(xué)習(xí)
周一至周日
4000-9696-28

五款必備高效Python數(shù)據(jù)分析庫(kù),你知道幾個(gè)?

來(lái)源:北大青鳥總部 2023年03月14日 14:51

摘要: Python在數(shù)據(jù)獲取、數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)挖掘、數(shù)據(jù)可視化、機(jī)器學(xué)習(xí)、人工智能等方面有著很多成熟的庫(kù)以及活躍的社區(qū),這構(gòu)成了數(shù)據(jù)科學(xué)領(lǐng)域最為完整且完善的生態(tài)。

在大數(shù)據(jù)時(shí)代,數(shù)據(jù)思維已開始深刻變革各行各業(yè),從我們的電商消費(fèi)信息、運(yùn)動(dòng)軌跡、社交數(shù)據(jù)、產(chǎn)品使用習(xí)慣,到企業(yè)的調(diào)研、設(shè)計(jì)、產(chǎn)品、運(yùn)營(yíng)、營(yíng)銷,再到交通、金融、生產(chǎn)制造、公共服務(wù)。而由于Python在數(shù)據(jù)獲取、數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)挖掘、數(shù)據(jù)可視化、機(jī)器學(xué)習(xí)、人工智能等方面有著非常多成熟的庫(kù)以及活躍的社區(qū),構(gòu)成數(shù)據(jù)科學(xué)領(lǐng)域最為完整且完善的生態(tài)。

尤其是在NLP(自然語(yǔ)言處理)項(xiàng)目中,用Python來(lái)處理數(shù)據(jù)也就變得更加廣泛了。下面將詳細(xì)地介紹五款必備的高效Python數(shù)據(jù)分析庫(kù)。這會(huì)對(duì)我們編寫高級(jí)復(fù)雜的程序幫助很大。但不用擔(dān)心,你不需要有任何技術(shù)基礎(chǔ)就可上手這些庫(kù)。


一.Numerizer庫(kù),文本數(shù)字的分析轉(zhuǎn)換

Numerizer是一個(gè)將自然語(yǔ)言中文本數(shù)字快速轉(zhuǎn)換為整數(shù)型(int)和浮點(diǎn)型(float)數(shù)字的Python模塊或庫(kù)。它是一個(gè)開源的GitHub項(xiàng)目(github.com/jaidevd/nume)。特別說(shuō)明,為了方便演示該庫(kù)的使用。這里推薦使用Anaconda,它是一個(gè)開源的Python發(fā)行版本,其包含了conda、Python等180多個(gè)科學(xué)包及其依賴項(xiàng),非常適合初學(xué)者。


1.Numerizer庫(kù)的安裝

打開Anaconda的終端,輸入如下語(yǔ)句進(jìn)行Numerizer庫(kù)的安裝。

pipinstall numerizer


2.Numerizer庫(kù)實(shí)例演示

安裝完成后,我們可以運(yùn)行Anaconda內(nèi)置的spyder,并輸入以下語(yǔ)句

fromnumerizer import numerize

numerize('fortytwo')

numerize('forty-two')

numerize('fourhundred and sixty two')

numerize('onefifty')

numerize('twelvehundred')

numerize('twentyone thousand four hundred and seventy three')

numerize('onemillion two hundred and fifty thousand and seven')

numerize('onebillion and one')

numerize('nineand three quarters')

numerize('platformnine and three quarters')


程序運(yùn)行結(jié)果如下圖所示,可以很清楚地發(fā)現(xiàn),英文文字?jǐn)?shù)字被準(zhǔn)備轉(zhuǎn)換成了相應(yīng)的數(shù)字。





二.Missingo庫(kù),丟失值可視化分析

在現(xiàn)實(shí)世界的數(shù)據(jù)集中發(fā)現(xiàn)丟失值是很普遍的。每次處理數(shù)據(jù)時(shí),缺失值是必須要考慮的問題。但是手工查看每個(gè)變量的缺失值是非常麻煩的一件事情。數(shù)據(jù)分析之前首先要保證數(shù)據(jù)集的質(zhì)量。Missingo就是一個(gè)可視化丟失值的庫(kù)。它提供了一個(gè)靈活且易于使用的缺失數(shù)據(jù)可視化和實(shí)用程序的小工具集,使您可以快速直觀地總結(jié)數(shù)據(jù)集的完整性。(該庫(kù)的GitHub地址:github.com/ResidentMari


1.Missingo庫(kù)的安裝

這里同樣是使用Anaconda,打開Anaconda的終端后,輸入如下語(yǔ)句進(jìn)行Missingo庫(kù)的安裝

pipinstall missingno


2. Missingo庫(kù)實(shí)例演示

下面的樣例數(shù)據(jù)使用NYPD Motor VehicleCollisions Dataset 數(shù)據(jù)集.運(yùn)行下面語(yǔ)句即可獲得數(shù)據(jù)


pipinstall quilt

quiltinstall ResidentMario/missingno_data


之后,加載數(shù)據(jù)到內(nèi)存,輸入以下語(yǔ)句

fromquilt.data.ResidentMario import missingno_data

collisions= missingno_data.nyc_collision_factors()

collisions= collisions.replace("nan", np.nan)


在Missingo庫(kù)中,有幾個(gè)主要函數(shù)以不同方式的可視化展示數(shù)據(jù)集數(shù)據(jù)缺失情況。其中,Matrix是使用最多的函數(shù),能快速直觀地看到數(shù)據(jù)集的完整性情況。輸入以下語(yǔ)句:

importmissingno as msno

%matplotlibinline

msno.matrix(collisions.sample(250))

程序運(yùn)行后,矩陣顯示的結(jié)果如下。圖中右邊顯示的迷你圖總結(jié)了數(shù)據(jù)集的總的完整性分布,并標(biāo)出了完整性最大和最小的點(diǎn)。





特別說(shuō)明,這里也可以通過figsize指定輸出圖像大小,例如下面語(yǔ)句:msno.matrix(collisions.sample(250),figsize=(12,5))


此外,msno.bar函數(shù)也是一個(gè)非常有用的函數(shù),可以簡(jiǎn)單地展示無(wú)效數(shù)據(jù)的條形圖。

msno.bar(collisions.sample(1000))


程序運(yùn)行后,顯示的數(shù)據(jù)條形圖:





三.Faker庫(kù),虛擬測(cè)試數(shù)據(jù)生成器

在軟件需求、開發(fā)、測(cè)試過程中,我們可能會(huì)遇到需要生成一些測(cè)試數(shù)據(jù)或在分析中使用一些虛擬數(shù)據(jù)的情況。針對(duì)這種情況,我們一般要么使用已有的系統(tǒng)數(shù)據(jù),要么需要手動(dòng)制造一些數(shù)據(jù)。但由于現(xiàn)在的業(yè)務(wù)系統(tǒng)數(shù)據(jù)多種多樣,千變?nèi)f化。在手動(dòng)制造數(shù)據(jù)的過程中,可能需要花費(fèi)大量精力和工作量,此項(xiàng)工作既繁復(fù)又容易出錯(cuò),而且,部分?jǐn)?shù)據(jù)的手造工作無(wú)法保障:比如UUID類數(shù)據(jù)、MD5、SHA加密類數(shù)據(jù)等。


Faker是一個(gè)Python庫(kù),開源的GITHUB項(xiàng)目(github.com/joke2k/faker),主要用來(lái)創(chuàng)建偽數(shù)據(jù),使用Faker包,無(wú)需再手動(dòng)生成或者手寫隨機(jī)數(shù)來(lái)生成數(shù)據(jù),只需要調(diào)用Faker提供的方法,即可完成數(shù)據(jù)的快速生成。


1.Faker庫(kù)的安裝

pipinstall faker


2.Faker庫(kù)實(shí)例演示

輸入下面語(yǔ)句,引用初始化

fromfaker import Faker

f=Faker(locale='zh_CN')

特別說(shuō)明,關(guān)于初始化參數(shù)locale:為生成數(shù)據(jù)的文化選項(xiàng),默認(rèn)為英文(en_US)。如果要生成相對(duì)應(yīng)的中文隨機(jī)信息(比如:名字,地址,郵編,城市,省份等),需使用zh_CN值。


之后,輸入下面語(yǔ)句,將隨機(jī)生成假的中文名字和地址,非常簡(jiǎn)單易用。

fori in range(1,100):

print(f.name()+" "+f.address())


運(yùn)行結(jié)果如下:





四.Emot庫(kù),表情符號(hào)數(shù)據(jù)分析

在情感數(shù)據(jù)分析方面,收集和分析有關(guān)表情符號(hào)的數(shù)據(jù)可以提供非常有用的信息。而表情符號(hào)是一種小到可以插入到表達(dá)情感或想法的文本中的圖像。它僅由使用鍵盤字符(如字母、數(shù)字和標(biāo)點(diǎn)符號(hào))組成。

Emot庫(kù)也是一個(gè)開源Github項(xiàng)目(github.com/NeelShah18/e),可以幫助我們把表情符號(hào)emojis和emoticons轉(zhuǎn)換成單詞。它有一個(gè)很全面的表情符號(hào)與相應(yīng)單詞映射的集合。


1.Emot庫(kù)的安裝,

輸入以下語(yǔ)句即可自動(dòng)安裝

pipinstall emot


2.Emot庫(kù)實(shí)例演示

輸入下面語(yǔ)句

importemot

text= "I love python :-)"

emot.emoji(text)

emot.emoticons(text)


程序運(yùn)行后,顯示結(jié)果如下,可以很清楚看到原語(yǔ)句中的人臉被識(shí)別轉(zhuǎn)換成了Happyface smiley文字信息。





五.Chartify庫(kù),輕松高效創(chuàng)建圖表數(shù)據(jù)

盡管現(xiàn)在有很多創(chuàng)建圖表的工具,如Seaborn,Matplotlib,Plotly,Bokeh,Ggplot2,D3和Tableau等,但是仍然需要花費(fèi)很多時(shí)間在創(chuàng)建圖表的細(xì)節(jié)上。為了讓操作簡(jiǎn)單化,作為全球最大的正版流媒體音樂服務(wù)平臺(tái)之一Spotify開源了一個(gè)年度最佳Python庫(kù)Chartify(github.com/spotify/char)。它可以幫助你以簡(jiǎn)單明了的方式創(chuàng)建圖表,讓數(shù)據(jù)可視化變得輕而易舉。與其他工具相比,Chartify庫(kù)具有用戶友好的語(yǔ)法和一致的數(shù)據(jù)格式。創(chuàng)建漂亮而快速的圖表所需的時(shí)間更少。


1.Chartify庫(kù)安裝,

輸入以下語(yǔ)句即可

pipinstall chartify


2.Chartify庫(kù)實(shí)例演示

Chartify庫(kù)安裝完成后,輸入下面語(yǔ)句,

importpandas as pd

importchartify

#Generate example data

data= chartify.examples.example_data()


到這里,我們已經(jīng)加載了一些示例數(shù)據(jù)。下面對(duì)實(shí)例數(shù)據(jù)來(lái)做一些格式轉(zhuǎn)換:

total_quantity_by_month_and_fruit= (data.groupby(

[data['date'] +pd.offsets.MonthBegin(-1), 'fruit'])['quantity'].sum()

.reset_index().rename(columns={'date':'month'})

.sort_values('month'))

print(total_quantity_by_month_and_fruit.head())


接著,我們就可以將示例表格數(shù)據(jù)以圖的形式畫出來(lái),輸入下面語(yǔ)句:

#Plot the data

ch= chartify.Chart(blank_labels=True, x_axis_type='datetime')

ch.set_title("Stackedarea")

ch.set_subtitle("Representchanges in distribution.")

ch.plot.area(

data_frame=total_quantity_by_month_and_fruit,

x_column='month',

y_column='quantity',

color_column='fruit',

stacked=True)

ch.show('png')

程序運(yùn)行后,結(jié)果顯示如下。原示例數(shù)據(jù)中的水果種類(Apple,Banana,Grape,Orange,Apple),數(shù)量和時(shí)間以非常直觀清晰的方式展現(xiàn)出來(lái)。而整個(gè)過程的實(shí)現(xiàn),使用的語(yǔ)句非常簡(jiǎn)潔。





標(biāo)簽: python
熱門班型時(shí)間
人工智能就業(yè)班 即將爆滿
AI應(yīng)用線上班 即將爆滿
UI設(shè)計(jì)全能班 即將爆滿
數(shù)據(jù)分析綜合班 即將爆滿
軟件開發(fā)全能班 爆滿開班
網(wǎng)絡(luò)安全運(yùn)營(yíng)班 爆滿開班
報(bào)名優(yōu)惠
免費(fèi)試聽
課程資料
官方微信
返回頂部
培訓(xùn)課程 熱門話題 站內(nèi)鏈接