亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

Python數(shù)據(jù)分析之路如何走?

數(shù)據(jù)分析準(zhǔn)備工作

1.數(shù)據(jù)分析工具

  • 工欲善其事,必先利其器,網(wǎng)上有很多關(guān)于數(shù)據(jù)剖析的文章,置信大家一定聽(tīng)過(guò)R言語(yǔ)和Python之爭(zhēng),而且各有所長(zhǎng),R言語(yǔ)在學(xué)術(shù)界更盛行,但是在做項(xiàng)目上面我個(gè)人比擬喜歡Python,Python更通用,更簡(jiǎn)約,文檔也很多,而且有大量的庫(kù)特別是Google,Facebook都開(kāi)源了很多功用強(qiáng)大的庫(kù),十分不錯(cuò).所以言語(yǔ)我們選Python.
  • 開(kāi)發(fā)工具的話,建議大家用Anaconda,是一個(gè)強(qiáng)大的科學(xué)計(jì)算的Python發(fā)行版,首推數(shù)據(jù)分析開(kāi)發(fā)工具.支持 Linux, Mac, Windows系統(tǒng),提供了包管理與環(huán)境管理的功能,可以很方便地解決多版本Python并存、切換以及各種第三方包安裝問(wèn)題。推薦使用里面的spyder和Jupyter Notebook非常不錯(cuò),界面美觀而且調(diào)試方便

2.數(shù)據(jù)分析的庫(kù)

Python數(shù)據(jù)分析這么流行,其中跟兩個(gè)第三方的庫(kù)非常相關(guān),一個(gè)是Numpy,一個(gè)是Pandas,這兩個(gè)庫(kù)如果你要做數(shù)據(jù)分析,必須要熟練掌握使用~~

  • Numpy偏數(shù)組多一點(diǎn),特別是多維數(shù)組,矩陣,非常靈活方便.內(nèi)置了大量的矩陣的操作,對(duì)于科學(xué)計(jì)算來(lái)說(shuō)簡(jiǎn)直就是神器.
  • Pandas偏series多一點(diǎn),而且跟時(shí)序相關(guān),內(nèi)置了大量庫(kù)和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,特別是對(duì)于大型的數(shù)據(jù)的處理,非常的高效和快捷.
  • 比如對(duì)于一個(gè)1000萬(wàn)行的CVS數(shù)據(jù)的處理,用字典去處理大概需要60幾秒,而pandas只需要4秒,而且代碼行更少.以后我們會(huì)用實(shí)戰(zhàn)例子去證明這一點(diǎn)

當(dāng)然上面都是一些入門(mén)必學(xué)技能,繼續(xù)修煉的話需要了解大數(shù)據(jù)的處理,以及一些機(jī)器學(xué)習(xí)的庫(kù)sk-learn和深度學(xué)習(xí)的一些框架

Python數(shù)據(jù)分析之路如何走?

初探numpy

3.什么是NumPy

1).Numpy全稱(chēng)叫Numeric Python,聽(tīng)名字就知道跟數(shù)值有關(guān),沒(méi)錯(cuò)numpy,提供了許多高級(jí)的數(shù)值編程工具,如:矩陣運(yùn)算、多維數(shù)組,矢量運(yùn)算,線性代數(shù),隨機(jī)數(shù)的生成,均方差等這些科學(xué)計(jì)算操作非常方便.

2).Ndarray 對(duì)象

Numpy里面有一個(gè)最最有名的Ndarray對(duì)象,幾乎所有的操作都圍繞這個(gè)Ndarray來(lái),也叫多維數(shù)組.

數(shù)組是主流語(yǔ)言的標(biāo)配數(shù)據(jù)結(jié)構(gòu),Python中的列表其實(shí)也是這樣的一種數(shù)據(jù)結(jié)構(gòu),但是列表跟數(shù)組不一樣;比如列表的元素可以是任意的類(lèi)型,列表需要保存每個(gè)對(duì)象的指針和對(duì)象,很浪費(fèi)內(nèi)存空間,而且不支持多維數(shù)組

Ndarray會(huì)支持多維數(shù)組,而且數(shù)組之間的轉(zhuǎn)換非常方面,內(nèi)置了很多高效的內(nèi)建函數(shù),都是用C寫(xiě)的,有利于節(jié)省內(nèi)存和提高CPU的計(jì)算時(shí)間.比如需要計(jì)算一百萬(wàn)數(shù)據(jù)的正弦函數(shù)用numpy比Python里的標(biāo)準(zhǔn)函數(shù)要快近10倍~~

4.Ndarray和Python list的相似之處

Python數(shù)據(jù)分析之路如何走?

import numpy

n1=numpy.array(['AA','BB','CC','DD','EE'])

list1=['AA','BB','CC','DD','EE']

a).都可以通過(guò)下標(biāo)去訪問(wèn)

print n1[0]

>>'AA'

print list1[0]

>>'AA'

b).都可以切片去訪問(wèn)

n1=numpy.array(['AA','BB','CC','DD','EE'])

list1=['AA','BB','CC','DD','EE']

print n1[1:3]

>>['BB' 'CC']

print list1[1:3]

>>['BB', 'CC']

c).都可以用循環(huán)處理

n1=numpy.array([1,2,3,4])

for n in n1:

print n

>>

1

2

3

4

5.Ndarray和Python list的不同之處

a).Ndarray里面的元素必須是同一種類(lèi)型

(int,float,string_,bool, ...)

要么都是int,要么都是float,要么都是字符串

n1=np.array(['a','b','c',100])

>>

['a' 'b' 'c' '100']

因?yàn)閚darray要求所以的類(lèi)型必須一樣,你會(huì)發(fā)現(xiàn)100變成了字符串'100'

b).矢量運(yùn)算

比如相加

a1=np.array([1,2,3])

a2=np.array([4,5,6])

print a1+a2

>>[5,7,9]

而類(lèi)似的加操作在list中

list1=[1,2,3]

list2=[4,5,6]

print list1+list2

>>[1,2,3,4,5,6]

比如相乘

a1=np.array([1,2,3])

print a1*3

>>[3,6,9]

而類(lèi)似的操作在list中

a1=[1,2,3]

print a1*3

>>[1,2,3,1,2,3,1,2,3]

比如乘方

先產(chǎn)生3*3矩陣,每個(gè)數(shù)字都是0-9之間

arr1=np.random.randint(0,10,(3,3))

print arr1

>>

[[6 7 5]

[9 6 0]

[5 5 9]]

arr2=arr1**2

print arr2

>>

[[36 49 25]

[81 36 0]

[25 25 81]]

c).內(nèi)置了一些通用(ufunc)函數(shù)

比如max(),min(),argmax(),argmin(),mean()計(jì)算中位數(shù),std()計(jì)算均方差等函數(shù)

Python數(shù)據(jù)分析之路如何走?

留一個(gè)思考題

題目一:

a=np.array([1,2,3,4,5])

b=a

a+=np.array([1,1,1,1,1])

print b

題目二:

a=np.array([1,2,3,4,5])

b=a

a=a+np.array([1,1,1,1,1])

print b

看看題目一和題目二的print b的結(jié)果是什么,會(huì)一樣嗎?


Python數(shù)據(jù)分析起航篇就講到這里,是不是覺(jué)得numpy蠻強(qiáng)大的~~這只是開(kāi)始,今天的文章希望能給初學(xué)者一些啟發(fā)。

 

馬哥學(xué)習(xí)交流群

馬哥教育-Python開(kāi)發(fā)-1群 335068227

馬哥教育-Python開(kāi)發(fā)-2群 608459685

 

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開(kāi)發(fā)專(zhuān)業(yè)人才培訓(xùn)機(jī)構(gòu)!