Python數據分析之路如何走?

數據分析準備工作

1.數據分析工具

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

2.數據分析的庫

Python數據分析這么流行,其中跟兩個第三方的庫非常相關,一個是Numpy,一個是Pandas,這兩個庫如果你要做數據分析,必須要熟練掌握使用~~

  • Numpy偏數組多一點,特別是多維數組,矩陣,非常靈活方便.內置了大量的矩陣的操作,對于科學計算來說簡直就是神器.
  • Pandas偏series多一點,而且跟時序相關,內置了大量庫和一些標準的數據模型,特別是對于大型的數據的處理,非常的高效和快捷.
  • 比如對于一個1000萬行的CVS數據的處理,用字典去處理大概需要60幾秒,而pandas只需要4秒,而且代碼行更少.以后我們會用實戰例子去證明這一點

當然上面都是一些入門必學技能,繼續修煉的話需要了解大數據的處理,以及一些機器學習的庫sk-learn和深度學習的一些框架

Python數據分析之路如何走?

初探numpy

3.什么是NumPy

1).Numpy全稱叫Numeric Python,聽名字就知道跟數值有關,沒錯numpy,提供了許多高級的數值編程工具,如:矩陣運算、多維數組,矢量運算,線性代數,隨機數的生成,均方差等這些科學計算操作非常方便.

2).Ndarray 對象

Numpy里面有一個最最有名的Ndarray對象,幾乎所有的操作都圍繞這個Ndarray來,也叫多維數組.

數組是主流語言的標配數據結構,Python中的列表其實也是這樣的一種數據結構,但是列表跟數組不一樣;比如列表的元素可以是任意的類型,列表需要保存每個對象的指針和對象,很浪費內存空間,而且不支持多維數組

Ndarray會支持多維數組,而且數組之間的轉換非常方面,內置了很多高效的內建函數,都是用C寫的,有利于節省內存和提高CPU的計算時間.比如需要計算一百萬數據的正弦函數用numpy比python里的標準函數要快近10倍~~

4.Ndarray和Python list的相似之處

Python數據分析之路如何走?

import numpy

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

list1=[‘AA’,’BB’,’CC’,’DD’,’EE’]

a).都可以通過下標去訪問

print n1[0]

>>’AA’

print list1[0]

>>’AA’

b).都可以切片去訪問

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).都可以用循環處理

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

for n in n1:

print n

>>

1

2

3

4

5.Ndarray和Python list的不同之處

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

(int,float,string_,bool, …)

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

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

>>

[‘a’ ‘b’ ‘c’ ‘100’]

因為ndarray要求所以的類型必須一樣,你會發現100變成了字符串’100′

b).矢量運算

比如相加

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

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

print a1+a2

>>[5,7,9]

而類似的加操作在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]

而類似的操作在list中

a1=[1,2,3]

print a1*3

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

比如乘方

先產生3*3矩陣,每個數字都是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).內置了一些通用(ufunc)函數

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

Python數據分析之路如何走?

留一個思考題

題目一:

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的結果是什么,會一樣嗎?


Python數據分析起航篇就講到這里,是不是覺得numpy蠻強大的~~這只是開始,今天的文章希望能給初學者一些啟發。

 

馬哥學習交流群

馬哥教育-Python開發-1群 335068227

馬哥教育-Python開發-2群 608459685

 

相關新聞

聯系我們

400-080-6560

在線咨詢:點擊這里給我發消息

郵件:[email protected]

工作時間:周一至周日,09:00-18:30

QR code
云南快乐10分开奖直播