一琉用,什么是數(shù)據(jù)分析姨蝴?
? ??數(shù)據(jù)分析是指用適當(dāng)?shù)慕y(tǒng)計(jì)分析方法對(duì)收集來(lái)的大量數(shù)據(jù)進(jìn)行分析俊啼,提取有用信息和形成結(jié)論的過(guò)程。
數(shù)據(jù)分析可幫助人們作出判斷左医,以便采取適當(dāng)行動(dòng)
二授帕,數(shù)據(jù)分析過(guò)程?
數(shù)據(jù)收集-----------數(shù)據(jù)處理----------------數(shù)據(jù)分析---------------數(shù)據(jù)展現(xiàn)
三浮梢,數(shù)據(jù)分析都有哪些工具跛十?
SAS(statistical analysis system ):SAS公司的統(tǒng)計(jì)分析軟件,強(qiáng)大的數(shù)據(jù)庫(kù)整合平臺(tái)秕硝,做離線的分析或者模型用芥映,價(jià)格昂貴,服務(wù)于銀行或者大企業(yè)
SPSS(Statistical Product and Service Solutions远豺,統(tǒng)計(jì)產(chǎn)品與服務(wù)解決方案):IBM公司產(chǎn)品奈偏,用于統(tǒng)計(jì)學(xué)分析運(yùn)算、數(shù)據(jù)挖掘躯护,預(yù)測(cè)分析和決策支持任務(wù)的
R/MATLAB:適合做學(xué)術(shù)性質(zhì)的數(shù)據(jù)分析惊来,實(shí)際應(yīng)用上需要額外轉(zhuǎn)換為python和scala來(lái)實(shí)現(xiàn)
scala:函數(shù)式編程語(yǔ)言,入門門檻高棺滞,開發(fā)效率高唁盏,配合spark適合大規(guī)模數(shù)據(jù)分析和處理,scala運(yùn)行環(huán)境JVM
python:數(shù)據(jù)工程領(lǐng)域和機(jī)器學(xué)習(xí)領(lǐng)域有很多成熟的架構(gòu)和算法庫(kù)检眯,完全可以只用python可以構(gòu)建以數(shù)據(jù)為中心的應(yīng)用程序厘擂,在數(shù)據(jù)工程領(lǐng)域和機(jī)器學(xué)習(xí)領(lǐng)域,python非常流行
四锰瘸,開發(fā)環(huán)境
umpy:Python 科學(xué)計(jì)算的基礎(chǔ)包
安裝
pip3 install numpy
Pandas:強(qiáng)大的分析結(jié)構(gòu)化數(shù)據(jù)的工具集
安裝
pip3 install pandas
Numpy:? ? ? ? ? ? ? ? ? ?Matplotlib:python中強(qiáng)大的畫圖模塊
????????????????????????????????scipy:基于Numpy提供做科學(xué)計(jì)算的工具集
五刽严,關(guān)于csv文件?
數(shù)據(jù)加載的兩種方式:np.loadtxt()
? ? ? ? ? ? ? ? ? ? ?數(shù)據(jù)加載np. genfromtxt()
六,關(guān)于Numpy:
Numpy:提供了一個(gè)在Python中做科學(xué)計(jì)算的基礎(chǔ)庫(kù)舞萄,重在數(shù)值計(jì)算眨补,主要用于多維數(shù)組(矩陣)處理的庫(kù)。
用來(lái)存儲(chǔ)和處理大型矩陣倒脓,比Python自身的嵌套列表結(jié)構(gòu)要高效的多撑螺。
本身是由C語(yǔ)言開發(fā),是個(gè)很基礎(chǔ)的擴(kuò)展崎弃,Python其余的科學(xué)計(jì)算擴(kuò)展大部分都是以此為基礎(chǔ)甘晤。
高性能科學(xué)計(jì)算和數(shù)據(jù)分析的基礎(chǔ)包
ndarray,多維數(shù)組(矩陣)饲做,具有矢量運(yùn)算能力线婚,快速、節(jié)省空間
ndarray數(shù)組屬性:
ndim屬性:維度個(gè)數(shù)
shape屬性:維度大小
dtype屬性:數(shù)據(jù)類型
生成指定維度大信杈(3行4列)的隨機(jī)多維浮點(diǎn)型數(shù)據(jù)(二維)塞弊,rand固定區(qū)間0.0 ~ 1.0
arr = np.random.rand(3, 4)
ndarray數(shù)組中的統(tǒng)計(jì)函數(shù):np.std(),?np.var():所有元素的標(biāo)準(zhǔn)差,所有元素的方差泪姨,參數(shù)是 number 或 array
方差和標(biāo)準(zhǔn)差:衡量數(shù)據(jù)和期望值之間的偏離值
求方差:所有元素都和平均數(shù)的差的平方的平均數(shù)
元素去重排序函數(shù):np.unique():找到唯一值并返回排序結(jié)果游沿,類似于Python的set集合
一,數(shù)據(jù)的可視化工具
python 的 2D繪圖庫(kù)肮砾,為Python構(gòu)建一個(gè)Matlab式的繪圖接口奏候,通過(guò) Matplotlib,開發(fā)者可以僅需要幾行代碼唇敞,便可以生成繪圖蔗草,直方圖,功率譜疆柔,條形圖咒精,錯(cuò)誤圖,散點(diǎn)圖等
Matplotlib是最常用繪圖庫(kù)旷档,功能上能夠滿足我們的應(yīng)用
serborn是在matplotlib的基礎(chǔ)上進(jìn)行了更高級(jí)的API封裝模叙,是一個(gè)補(bǔ)充
Bokeh 針對(duì)web
d3.js 最高級(jí)的繪圖工具,js來(lái)寫
? ? 1鞋屈,pyploy模塊包含了常用的matplotlib API函數(shù)
????????????導(dǎo)入:
????????????????import matplotlib.pyplot as plt
????2? 范咨,創(chuàng)建畫布:
? ??????????????????figure可以理解為畫布
????????????????????如果不創(chuàng)建figure對(duì)象,matplotlib自動(dòng)創(chuàng)建一個(gè)figure對(duì)象
????????????????????代碼
????????????????????fig = plt.figure()
????????????????????print(type(fig))
????3厂庇,快速繪圖:
????????????????????arr = np.random.randn(100)
????????????????????plt.plot(arr)
????????????????????plt.show()
????4渠啊,Subplot
????????可以通過(guò)add_subplot來(lái)分割figure,表示可以在figure的不同位置上作圖
? ? 5权旷,散點(diǎn)圖 scatter方法:
????????????????????參數(shù)1:x軸的坐標(biāo)
????????????????????參數(shù)2: y軸的坐標(biāo)
????????????????????代碼
????????????????????x = [1,2,3,4]
????????????????????y = [2,4,5,8]
????????????????????plt.scatter(x,y)
????????????????????plt.show()
? ? 6替蛉,柱形圖bar,餅狀圖
? ??????????????????????????????????????????????????數(shù)據(jù)分析工具Pandas
一,什么是Pandas?
Pandas的名稱來(lái)自于面板數(shù)據(jù)(panel data)和Python數(shù)據(jù)分析(data analysis)躲查。
Pandas是一個(gè)強(qiáng)大的分析結(jié)構(gòu)化數(shù)據(jù)的工具集它浅,基于NumPy構(gòu)建,提供了高級(jí)數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)操作工具镣煮,它是使Python成為強(qiáng)大而高效的數(shù)據(jù)分析環(huán)境的重要因素之一姐霍。
二,Pandas的數(shù)據(jù)結(jié)構(gòu)典唇?
Series是一種類似于一維數(shù)組的對(duì)象(有索引镊折,有值,索引自定創(chuàng)建)
可以通過(guò)list構(gòu)建蚓聘,也可以通過(guò)dict構(gòu)建
DataFrame是一個(gè)表格型的數(shù)據(jù)結(jié)構(gòu),它含有一組有序的列盟劫,每列可以是不同類型的值夜牡。DataFrame既有行索引也有列索引,數(shù)據(jù)是以二維結(jié)構(gòu)存放的侣签。
通過(guò)ndarray構(gòu)建DataFrame塘装,也可以通過(guò)dict構(gòu)建
Series索引:指定行索引,通過(guò)行索引訪問(wèn)數(shù)據(jù)影所,切片索引蹦肴,不連續(xù)索引,bool索引
DataFrame索引:指定列索引猴娩,通過(guò)列索引訪問(wèn)數(shù)據(jù)阴幌,不連續(xù)索引
小結(jié):把python的列表,轉(zhuǎn)換成numpy的數(shù)組ndarray? ??np.array()
numpy不能對(duì)日期進(jìn)行直接處理
datime.datetime.strptime()可以把字符串轉(zhuǎn)換成日期格式