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

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

來源:北大青鳥總部 2023年03月14日 14:51

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

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

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


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

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


1.Numerizer庫的安裝

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

pipinstall numerizer


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

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

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庫,丟失值可視化分析

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


1.Missingo庫的安裝

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

pipinstall missingno


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

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


pipinstall quilt

quiltinstall ResidentMario/missingno_data


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

fromquilt.data.ResidentMario import missingno_data

collisions= missingno_data.nyc_collision_factors()

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


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

importmissingno as msno

%matplotlibinline

msno.matrix(collisions.sample(250))

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





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


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

msno.bar(collisions.sample(1000))


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





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

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


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


1.Faker庫的安裝

pipinstall faker


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

輸入下面語句,引用初始化

fromfaker import Faker

f=Faker(locale='zh_CN')

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


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

fori in range(1,100):

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


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





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

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

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


1.Emot庫的安裝,

輸入以下語句即可自動安裝

pipinstall emot


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

輸入下面語句

importemot

text= "I love python :-)"

emot.emoji(text)

emot.emoticons(text)


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





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

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


1.Chartify庫安裝,

輸入以下語句即可

pipinstall chartify


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

Chartify庫安裝完成后,輸入下面語句,

importpandas as pd

importchartify

#Generate example data

data= chartify.examples.example_data()


到這里,我們已經(jīng)加載了一些示例數(shù)據(jù)。下面對實(shí)例數(shù)據(jù)來做一些格式轉(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ù)以圖的形式畫出來,輸入下面語句:

#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ù)量和時間以非常直觀清晰的方式展現(xiàn)出來。而整個過程的實(shí)現(xiàn),使用的語句非常簡潔。





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