版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)分析基礎(chǔ)與NumPy數(shù)據(jù)統(tǒng)計(jì)分析與Pandas數(shù)據(jù)可視化與Matplotlib 第15章 數(shù)據(jù)分析與可視化基礎(chǔ)參考書目Python 程序設(shè)計(jì)數(shù)據(jù)分析基礎(chǔ)與NumPy第15章 數(shù)據(jù)分析與可視化基礎(chǔ)參考書目錄數(shù)據(jù)分析基礎(chǔ)與NumPy數(shù)據(jù)統(tǒng)計(jì)分析與Pandas數(shù)據(jù)可視化與Matplotlib 這里說明圖片內(nèi)容 用來存儲(chǔ)和處理大型矩陣NumPy提供了大量的庫和標(biāo)準(zhǔn)數(shù)據(jù)模型,以及高效、便捷地處理大型數(shù)據(jù)集所需的函數(shù)和方法PandasMatplotlib繪圖庫目錄數(shù)據(jù)分析基礎(chǔ)與NumPy這里說明圖片內(nèi)容 用來存儲(chǔ)和處理數(shù)據(jù)分析基礎(chǔ)與NumPy數(shù)據(jù)統(tǒng)計(jì)分析與Pandas數(shù)據(jù)可視化與Matplotlib
2、目錄這里說明圖片內(nèi)容 數(shù)據(jù)分析基礎(chǔ)與NumPy目錄這里說明圖片內(nèi)容 數(shù)據(jù)分析基礎(chǔ)與NumPy1 NumPy概述NumPy:開源的Python科學(xué)計(jì)算庫,包含很多實(shí)用的數(shù)學(xué)函數(shù),涵蓋線性代數(shù)運(yùn)算、傅里葉變換和隨機(jī)數(shù)生成等功能。部分功能如下:1)ndarray:一個(gè)具有矢量算術(shù)運(yùn)算且節(jié)省空間的多維數(shù)組。2)用于對(duì)整組數(shù)據(jù)進(jìn)行快速運(yùn)算的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)(無須編寫循環(huán))。3)用于讀寫磁盤數(shù)據(jù)的工具以及用于操作內(nèi)存映射文件的工具。4)線性代數(shù)、隨機(jī)數(shù)生成以及傅里葉變換功能。5)用于集成C、C+、Fortran等語言的代碼編寫工具。數(shù)據(jù)分析基礎(chǔ)與NumPy1 NumPy概述NumPy:開源的數(shù)據(jù)分析基礎(chǔ)與Nu
3、mPy2 NumPy的對(duì)象ndarrayNumPy提供了兩種基本對(duì)象:ndarray和ufunc。多維數(shù)組對(duì)象該對(duì)象由兩個(gè)部分組成,即實(shí)際的數(shù)據(jù)和描述這些數(shù)據(jù)的元數(shù)據(jù)。大部分的數(shù)組操作僅僅修改元數(shù)據(jù)部分,而不改變底層的實(shí)際數(shù)據(jù)。ndarray能夠?qū)?shù)組進(jìn)行處理的函數(shù)ufunc數(shù)據(jù)分析基礎(chǔ)與NumPy2 NumPy的對(duì)象ndarrayN數(shù)據(jù)分析基礎(chǔ)與NumPy2 NumPy的對(duì)象ndarrayndarray 對(duì)象是用于存放同類型元素的多維數(shù)組。以 0 下標(biāo)為開始進(jìn)行集合中元素的索引,每個(gè)元素在內(nèi)存中都有相同存儲(chǔ)大小的區(qū)域。 ndarray 內(nèi)部由以下內(nèi)容組成:指向數(shù)據(jù)的指針數(shù)據(jù)類型表示數(shù)組形狀的
4、元組一個(gè)跨度元組數(shù)據(jù)分析基礎(chǔ)與NumPy2 NumPy的對(duì)象ndarrayn數(shù)據(jù)分析基礎(chǔ)與NumPy2 NumPy的對(duì)象ndarrayndarray的內(nèi)部結(jié)構(gòu):數(shù)據(jù)分析基礎(chǔ)與NumPy2 NumPy的對(duì)象ndarrayn數(shù)據(jù)分析基礎(chǔ)與NumPy2 NumPy的對(duì)象ndarray1ndarray(數(shù)組)的屬性NumPy 數(shù)組的維數(shù)稱為秩(rank),秩就是軸的數(shù)量,即數(shù)組的維度。axis=0,表示沿著第 0 軸進(jìn)行操作。數(shù)據(jù)分析基礎(chǔ)與NumPy2 NumPy的對(duì)象ndarray1數(shù)據(jù)分析基礎(chǔ)與NumPy2 NumPy的對(duì)象ndarray【例】ndarray(數(shù)組)的常用屬性應(yīng)用演示。import
5、 numpy as npdata = 6,2,3,1,4arr1 = np.array(data)print(數(shù)組維度的元組:,arr1.shape)print(數(shù)組維數(shù):,arr1.ndim)print(數(shù)組元素的類型:,arr1.dtype)運(yùn)行結(jié)果:數(shù)組維度的元組: (5,)數(shù)組維數(shù): 1數(shù)組元素的類型: int32數(shù)據(jù)分析基礎(chǔ)與NumPy2 NumPy的對(duì)象ndarray【數(shù)據(jù)分析基礎(chǔ)與NumPy3 NumPy的基本操作1NumPy.array 創(chuàng)建一個(gè)ndarray只需調(diào)用NumPy的 array函數(shù)即可:numpy.array(object, dtype = None, copy
6、= True, order = None, subok = False, ndmin = 0)object:數(shù)組或嵌套的數(shù)列dtype:數(shù)組元素的數(shù)據(jù)類型,可選copy:對(duì)象是否需要復(fù)制,可選order:創(chuàng)建數(shù)組的樣式,C為行方向,F(xiàn)為列方向,A為任意方向(默認(rèn))subok:默認(rèn)返回一個(gè)與基類類型一致的數(shù)組ndmin:指定生成數(shù)組的最小維度數(shù)據(jù)分析基礎(chǔ)與NumPy3 NumPy的基本操作1NumP數(shù)據(jù)分析基礎(chǔ)與NumPy3 NumPy的基本操作2NumPy.emptyNumPy.empty用于創(chuàng)建指定形狀和dtype的未初始化數(shù)組:NumPy.empty(shape, dtype = floa
7、t, order = C)shape:空數(shù)組的形狀,整數(shù)或整數(shù)元組dtype:所需的輸出數(shù)組類型,可選order: C為按行的 C 風(fēng)格數(shù)組,F(xiàn)為按列的 Fortran 風(fēng)格數(shù)組x = np.empty(3,2, dtype = int) 數(shù)據(jù)分析基礎(chǔ)與NumPy3 NumPy的基本操作2NumP數(shù)據(jù)分析基礎(chǔ)與NumPy3 NumPy的基本操作3.NumPy.zerosNumPy.zeros函數(shù)用于返回特定大小,以0填充的新數(shù)組。NumPy.zeros(shape, dtype = float, order = C)shape:空數(shù)組的形狀,整數(shù)或整數(shù)元組dtype:所需的輸出數(shù)組類型,可選o
8、rder:C為按行的 C 風(fēng)格數(shù)組,F(xiàn)為按列的 Fortran 風(fēng)格數(shù)組x = np.zeros(5) 數(shù)據(jù)分析基礎(chǔ)與NumPy3 NumPy的基本操作3.NumP數(shù)據(jù)分析基礎(chǔ)與NumPy3 NumPy的基本操作4NumPy.onesNumPy.ones函數(shù)用于返回特定大小,以 1 填充的新數(shù)組。NumPy.ones(shape, dtype = None, order = C) shape:空數(shù)組的形狀,整數(shù)或整數(shù)元組dtype:所需的輸出數(shù)組類型,可選order:C為按行的 C 風(fēng)格數(shù)組,F(xiàn)為按列的 Fortran 風(fēng)格數(shù)組x = np.ones(5) 1. 1. 1. 1. 1.數(shù)據(jù)分析
9、基礎(chǔ)與NumPy3 NumPy的基本操作4NumP數(shù)據(jù)分析基礎(chǔ)與NumPy3 NumPy的基本操作5NumPy.asarray此函數(shù)類似于NumPy.array,除了它有較少的參數(shù)。對(duì)于將 Python 序列轉(zhuǎn)換為ndarray非常有用。NumPy.asarray(a, dtype = None, order = None)a:任意形式的輸入?yún)?shù),比如列表、列表的元組、元組、元組的元組、元組的列表dtype:通常,輸入數(shù)據(jù)的類型會(huì)應(yīng)用到返回的ndarrayorder:C為按行的 C 風(fēng)格數(shù)組,F(xiàn)為按列的 Fortran 風(fēng)格數(shù)組x = 1,2,3 a = np.asarray(x) 1 2 3
10、數(shù)據(jù)分析基礎(chǔ)與NumPy3 NumPy的基本操作5NumP數(shù)據(jù)分析基礎(chǔ)與NumPy3 NumPy的基本操作6NumPy.arange該函數(shù)返回ndarray對(duì)象,包含給定范圍內(nèi)的等間隔值。NumPy.arange(start, stop, step, dtype) start:范圍的起始值,默認(rèn)為0stop:范圍的終止值(不包含)step:兩個(gè)值的間隔,默認(rèn)為1dtype:返回ndarray的數(shù)據(jù)類型,如果沒有提供,則會(huì)使用輸入數(shù)據(jù)的類型。x = np.arange(5) 0 1 2 3 4數(shù)據(jù)分析基礎(chǔ)與NumPy3 NumPy的基本操作6NumP數(shù)據(jù)分析基礎(chǔ)與NumPy3 NumPy的基本操
11、作7ndarray的隨機(jī)創(chuàng)建NumPy.random用于生成隨機(jī)數(shù)據(jù)。arr = np.random.rand(3, 4)數(shù)據(jù)分析基礎(chǔ)與NumPy3 NumPy的基本操作7ndar數(shù)據(jù)分析基礎(chǔ)與NumPy4 NumPy統(tǒng)計(jì)函數(shù)NumPy提供了很多統(tǒng)計(jì)函數(shù),用于從數(shù)組中查找最小元素,最大元素,百分位標(biāo)準(zhǔn)差和方差等。1.numpy.amin和 numpy.amax計(jì)算數(shù)組中的元素沿指定軸的最小值numpy.amax(a, axis=None, out=None)a:輸入數(shù)據(jù)。axis:指定沿著某個(gè)軸來計(jì)算最大值,axis=0表示按列,axis=l表示按行,默認(rèn)值None表示對(duì)整個(gè)數(shù)組。out:替代
12、輸出數(shù)組,用于放置結(jié)果,默認(rèn)值為None。x = np.arange(5) 0 1 2 3 4計(jì)算數(shù)組中的元素沿指定軸的最大值numpy.max(a, axis=None, out=None)數(shù)據(jù)分析基礎(chǔ)與NumPy4 NumPy統(tǒng)計(jì)函數(shù)NumPy提供數(shù)據(jù)分析基礎(chǔ)與NumPy4 NumPy統(tǒng)計(jì)函數(shù)2.numpy.ptp函數(shù)numpy.ptp函數(shù)返回沿某軸(axis)方向上的最大值與最小值的差值即maximum-minimum的值形成的數(shù)組。numpy.ptp(a, axis=None, out=None)a:輸入數(shù)據(jù)。axis:指定沿著某個(gè)軸來計(jì)算最大值,axis=0表示按列,axis=l表示
13、按行,默認(rèn)值None表示對(duì)整個(gè)數(shù)組。out:替代輸出數(shù)組,用于放置結(jié)果,默認(rèn)值為None。print(每行元素最大值和最小值之差:,np.ptp(a, axis = 1)print(每列元素最大值和最小值之差:,np.ptp(a, axis = 0)數(shù)據(jù)分析基礎(chǔ)與NumPy4 NumPy統(tǒng)計(jì)函數(shù)2.numpy數(shù)據(jù)分析基礎(chǔ)與NumPy4 NumPy統(tǒng)計(jì)函數(shù)3.numpy.percentile函數(shù)numpy.percentile函數(shù)用于計(jì)算數(shù)組中元素的百分位數(shù)。numpy.percentile(a, q, axis)a: 輸入數(shù)組;q: 要計(jì)算的百分位數(shù),在 0 100 之間;axis: 沿著它計(jì)
14、算百分位數(shù)的軸。print(在縱列上求50% 的分位數(shù):,np.percentile(a, 50, axis=0)print(在橫列上求50% 的分位數(shù):,np.percentile(a, 50, axis=1)數(shù)據(jù)分析基礎(chǔ)與NumPy4 NumPy統(tǒng)計(jì)函數(shù)3.numpy數(shù)據(jù)分析基礎(chǔ)與NumPy4 NumPy統(tǒng)計(jì)函數(shù)4.numpy.median函數(shù)沿某軸(axis)方向計(jì)算數(shù)組中的中位數(shù)。numpy.median(a, axis=None)a:數(shù)組或可以轉(zhuǎn)化成數(shù)組的對(duì)象;axis:指定沿著某個(gè)軸來計(jì)算中位數(shù),axis=0表示按列,axis=l表示按行,默認(rèn)值None表示對(duì)整個(gè)數(shù)組。print(
15、所有數(shù)組元素的中位數(shù):,np.median(a)print(在縱列上元素的中位數(shù):,np.median(a, axis = 0)print(在橫列列上元素的中位數(shù):,np.median(a, axis = 1)數(shù)據(jù)分析基礎(chǔ)與NumPy4 NumPy統(tǒng)計(jì)函數(shù)4.numpy數(shù)據(jù)分析基礎(chǔ)與NumPy4 NumPy統(tǒng)計(jì)函數(shù)5.numpy.mean函數(shù)計(jì)算數(shù)組或者軸方向的算術(shù)平均數(shù)。numpy.mean(a, axis=None)a:數(shù)組或可以轉(zhuǎn)化成數(shù)組的對(duì)象;axis:指定沿著某個(gè)軸來計(jì)算中位數(shù),axis=0表示按列,axis=l表示按行,默認(rèn)值None表示對(duì)整個(gè)數(shù)組。數(shù)據(jù)分析基礎(chǔ)與NumPy4 Nu
16、mPy統(tǒng)計(jì)函數(shù)5.numpy數(shù)據(jù)分析基礎(chǔ)與NumPy4 NumPy統(tǒng)計(jì)函數(shù)6.numpy.average函數(shù)根據(jù)在另一個(gè)數(shù)組中給出的各自的權(quán)重計(jì)算數(shù)組中元素的加權(quán)平均值。numpy.average(a, axis=None, weights=None)a:輸入數(shù)組;axis:指定沿著某個(gè)軸來計(jì)算平均值,axis=0表示按列,axis=l表示按行,默認(rèn)值None表示對(duì)整個(gè)數(shù)組;weights:表示權(quán)重值。當(dāng)權(quán)重值為維數(shù)組時(shí),其長(zhǎng)度必須與沿指定軸方向的長(zhǎng)度一致。另外,權(quán)重值數(shù)組也可以與a數(shù)組的形狀相同。average()函數(shù)除了a參數(shù)外,其余參數(shù)為可選項(xiàng)。wts = np.array(4, 3,
17、2, 1)print(指定權(quán)重,求平均值:,np.average(a, weights=wts)數(shù)據(jù)分析基礎(chǔ)與NumPy4 NumPy統(tǒng)計(jì)函數(shù)6.numpy數(shù)據(jù)分析基礎(chǔ)與NumPy4 NumPy統(tǒng)計(jì)函數(shù)7.標(biāo)準(zhǔn)差與標(biāo)準(zhǔn)差(1)標(biāo)準(zhǔn)差計(jì)算標(biāo)準(zhǔn)差的公式如下:std = sqrt(mean(x - x.mean()*2)a:輸入數(shù)組;axis:指定沿著某個(gè)軸來計(jì)算平均值,axis=0表示按列,axis=l表示按行,默認(rèn)值None表示對(duì)整個(gè)數(shù)組。numpy.std(a, axis=None)數(shù)據(jù)分析基礎(chǔ)與NumPy4 NumPy統(tǒng)計(jì)函數(shù)7.標(biāo)準(zhǔn)差與標(biāo)數(shù)據(jù)分析基礎(chǔ)與NumPy4 NumPy統(tǒng)計(jì)函數(shù)(2)
18、方差方差是每個(gè)樣本值與全體樣本值的平均數(shù)之差的平方值的平均數(shù)。 mean(x - x.mean()* 2)a:輸入數(shù)組;axis:指定沿著某個(gè)軸來計(jì)算平均值,axis=0表示按列,axis=l表示按行,默認(rèn)值None表示對(duì)整個(gè)數(shù)組;dtype:數(shù)據(jù)類型。numpy.var(a, axis=None, dtype=None)數(shù)據(jù)分析基礎(chǔ)與NumPy4 NumPy統(tǒng)計(jì)函數(shù)(2)方差 m數(shù)據(jù)分析基礎(chǔ)與NumPy數(shù)據(jù)統(tǒng)計(jì)分析與Pandas數(shù)據(jù)可視化與Matplotlib 目錄這里說明圖片內(nèi)容 數(shù)據(jù)分析基礎(chǔ)與NumPy目錄這里說明圖片內(nèi)容 數(shù)據(jù)統(tǒng)計(jì)分析與PandasPandas的核心是Series和Da
19、taFrame兩大數(shù)據(jù)結(jié)構(gòu)Series數(shù)據(jù)結(jié)構(gòu)用于存儲(chǔ)個(gè)序列的維數(shù)組DataFrame數(shù)據(jù)結(jié)構(gòu)用于存儲(chǔ)復(fù)雜數(shù)據(jù)的二維數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)統(tǒng)計(jì)分析與PandasPandas的核心是Series和數(shù)據(jù)統(tǒng)計(jì)分析與Pandas1 Series對(duì)象及常用操作Series由一組數(shù)據(jù)以及組與之相關(guān)的數(shù)據(jù)標(biāo)簽組成的。數(shù)據(jù)(即值)存放在value主數(shù)組標(biāo)簽(即索引)存儲(chǔ)在index數(shù)組中Series的表現(xiàn)形式為:索引在左邊,值在右邊。例如,Series對(duì)象1,3,5,2的內(nèi)部結(jié)構(gòu)數(shù)據(jù)統(tǒng)計(jì)分析與Pandas1 Series對(duì)象及常用操作Se數(shù)據(jù)統(tǒng)計(jì)分析與Pandas1 Series對(duì)象及常用操作1. 創(chuàng)建Series對(duì)象
20、(1)通過Series構(gòu)造函數(shù)創(chuàng)建。pandas.Series(data=None , index=None, dtype=None, name=None, copy=False)data:傳遞給序列的數(shù)據(jù),可以是ndarray、list或字典。index:設(shè)置軸的索引,索引值的個(gè)數(shù)與data參數(shù)的長(zhǎng)度相同。如果沒有設(shè)置index參數(shù),那么默認(rèn)值是 np.arange(n),或者 RangeIndex (0, 1, 2, , n)。dtype:設(shè)置序列元素的數(shù)據(jù)類型,如果沒有設(shè)置,那么將推斷數(shù)據(jù)類型。name:序列是一個(gè)多行的結(jié)構(gòu),name是序列的名稱。copy:復(fù)制數(shù)據(jù),默認(rèn)值是false。
21、數(shù)據(jù)統(tǒng)計(jì)分析與Pandas1 Series對(duì)象及常用操作1.數(shù)據(jù)統(tǒng)計(jì)分析與Pandas1 Series對(duì)象及常用操作2查看Series值和標(biāo)簽通過Series的屬性values和index可查看值和標(biāo)簽。print(查看Series對(duì)象的值:,m1.values)print(查看Series對(duì)象的標(biāo)簽:,m1.index)數(shù)據(jù)統(tǒng)計(jì)分析與Pandas1 Series對(duì)象及常用操作2數(shù)據(jù)統(tǒng)計(jì)分析與Pandas1 Series對(duì)象及常用操作3. 選擇內(nèi)部元素與賦值Series索引的工作方式類似于NumPy數(shù)組的索引,但Series的索引值不只是整數(shù)。(1)選擇單個(gè)元素看成普通的NumPy數(shù)組,指定索
22、引即可。如,m11獲取元素是-3。(2)選擇多個(gè)元素切片“起始值:終止值:步長(zhǎng)”來選擇多個(gè)元素時(shí),所指定的元素是不包含終止值位置的元素,如沒有指定終止值,則終止值是包含Series最后索引的元素。(3) 給元素賦值數(shù)據(jù)統(tǒng)計(jì)分析與Pandas1 Series對(duì)象及常用操作3.數(shù)據(jù)統(tǒng)計(jì)分析與Pandas1 Series對(duì)象及常用操作4.統(tǒng)計(jì)Series對(duì)象的組成元素(1)統(tǒng)計(jì)元素重復(fù)出現(xiàn)的次數(shù)unique()函數(shù)返回一個(gè)由Series去重后的元素所組成的數(shù)組value_counts()函數(shù)返回各個(gè)不同的元素,而且還能計(jì)算每個(gè)元素在Series中的出現(xiàn)次數(shù)。運(yùn)行結(jié)果中左邊是元素,右邊是元素出現(xiàn)的次數(shù)
23、。 (2)判斷元素是否存在使用isin()函數(shù)可以判斷給定的一列元素是否包含在Series數(shù)據(jù)結(jié)構(gòu)中。在則返回True,否則返回Falseimport numpy as npm1 = pd.Series(2,-3,4,5,2,4,2)print(對(duì)Series各個(gè)元素的值去重:,m1.unique()print(返回Series各個(gè)元素以及重復(fù)出現(xiàn)的次數(shù):n,m1.value_counts()print(判斷5是否在Series中間:n,m1.isin(5)數(shù)據(jù)統(tǒng)計(jì)分析與Pandas1 Series對(duì)象及常用操作4.數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操作DataFram
24、e是一個(gè)類似于二維數(shù)組或表格型的數(shù)據(jù)結(jié)構(gòu),既有行索引,又有列索引。行索引,表明不同行,橫向索引,叫index,0軸,axis=0列索引,表名不同列,縱向索引,叫columns,1軸,axis=1數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操作1.創(chuàng)建DataFrame對(duì)象 使用DataFrame構(gòu)造函數(shù):pandas.DataFrame(data=None, index=None, columns=None)data:為ndarray、list 或dict類型數(shù)據(jù)。index:行標(biāo)簽。如果沒有傳入?yún)?shù),默認(rèn)自動(dòng)創(chuàng)建一個(gè)從
25、0-N的整數(shù)索引。columns:列名列表列標(biāo)簽。如果沒有傳入?yún)?shù),默認(rèn)自動(dòng)創(chuàng)建一個(gè)從0-N的整數(shù)索引。數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操作通常情況下,我們使用pd.DataFrame函數(shù)來創(chuàng)建DataFrame,當(dāng)然也可以根據(jù)需要使用pd.DataFrame.from_dict函數(shù)來創(chuàng)建DataFrame。(1)使用字典來創(chuàng)建DataFrameimport pandas as pddata = name: Tom, Jhon, Strong, Sea, Sun,birthyear: 2000, 2001,
26、2002, 2001, 2002,height: 150, 170, 165, 185, 175row_index = 1, 2, 3, 4, 5col_names=birthyear, name, heightdf=pd.DataFrame(data,columns=col_names,index=row_index)print(df) birthyear name height1 2000 Tom 1502 2001 Jhon 1703 2002 Strong 1654 2001 Sea 1855 2002 Sun 175數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操數(shù)據(jù)統(tǒng)計(jì)
27、分析與Pandas2 DataFrame對(duì)象及常用操作(2)使用列表(列表項(xiàng)是List)來創(chuàng)建DataFrameimport pandas as pdstudents = jack, 34, CAU , Tom, 30, Tsinghua , Aadi, 16, PKU df = pd.DataFrame(students)print(df)import pandas as pdstudents = (jack, 34, CAU) ,(Tom, 30, Tsinghua ) ,(Aadi, 16, PKU)df = pd.DataFrame(students)print(df)(3)使用列表(
28、列表項(xiàng)是元組)來創(chuàng)建DataFrame對(duì)象數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操作(4)使用from_dict創(chuàng)建DataFramepd.DataFrame.from_dict(data)中,data是一個(gè)字典結(jié)構(gòu),字典的Key是列名,Value是一個(gè)列表,通過這種格式創(chuàng)建DataFrame。import pandas as pddata = col_1: 3, 2, 1, 0, col_2: a, b, c, ddf = pd.DataFrame.from_dict(data)print(df)數(shù)據(jù)統(tǒng)計(jì)分析與P
29、andas2 DataFrame對(duì)象及常用操數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操作2. DataFrame的屬性DataFrame的屬性主要是索引、數(shù)據(jù)類型、值和形狀。 (1)DataFrame的索引通過index屬性來訪問DataFrame的行標(biāo)簽,通過columns屬性訪問DataFrame的列標(biāo)簽。(2)數(shù)據(jù)類型:df.dtypes(3)DataFrame的值:df.values(4)DataFrame的軸和形狀:df.axes和df.shape數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操
30、作2. DataFrame的屬性DataFrame的屬性主要是索引、數(shù)據(jù)類型、值和形狀。 (1)DataFrame的索引通過index屬性來訪問DataFrame的行標(biāo)簽,通過columns屬性訪問DataFrame的列標(biāo)簽。(2)數(shù)據(jù)類型:df.dtypes(3)DataFrame的值:df.values(4)DataFrame的軸和形狀:df.axes和df.shape數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操作3.列操作和行操作(1)追加列通過為一個(gè)新列賦值來向DataFrame中追加新列,新列始終處于列名序列
31、的末尾: dfnew=a(2)插入列insert()函數(shù),該函數(shù)向DataFrame中插入一列,并制定新列的位置:DataFrame.insert(self, loc, column, value)loc:插入列的位置column:插入列的名稱value:插入列的值數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操作(3)刪除列或行使用drop函數(shù)來刪除行或列:DataFrame.drop(self, labels=None, axis=0, index=None, columns=None, level=None, inp
32、lace=False, errors=raise)labels 和 axis:labels參數(shù)指定要?jiǎng)h除的標(biāo)簽,如果axis=0 或 index,表示行標(biāo)簽;如果axis=1 或 columns,表示列標(biāo)簽。axis的默認(rèn)值是0;index:設(shè)置index 等價(jià)于設(shè)置 labels 和axis=0;columns:設(shè)置columns等價(jià)于設(shè)置 labels和 axis=1。數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操作(4)追加數(shù)據(jù)行DataFrame.append(self, other, ignore_index=
33、False, verify_integrity=False, sort=None)就是把一個(gè)結(jié)構(gòu)相同的DataFrame追加到另一個(gè)DataFrame的后面,把兩個(gè)DataFrame合并為一個(gè)。數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操作4.列數(shù)據(jù)類型轉(zhuǎn)換dfcol_name.astype(str)dfcol_name.astype(object)astype(dtype) 函數(shù)用于把DataFrame的列轉(zhuǎn)換為特定的類型,dtype可以是pandas支持的類型,也可以是NumPy.dtype,也可以是Python類
34、型:數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 DataFrame對(duì)象及常用操數(shù)據(jù)分析基礎(chǔ)與NumPy數(shù)據(jù)統(tǒng)計(jì)分析與Pandas數(shù)據(jù)可視化與Matplotlib 目錄這里說明圖片內(nèi)容 數(shù)據(jù)分析基礎(chǔ)與NumPy目錄這里說明圖片內(nèi)容 數(shù)據(jù)可視化與Matplotlib數(shù)據(jù)可視化是以圖形或圖表的形式展示數(shù)據(jù)。數(shù)據(jù)可視化后,可以更加直觀地幫助人們快速地理解數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)的關(guān)鍵點(diǎn)。數(shù)據(jù)可視化與Matplotlib數(shù)據(jù)可視化是以圖形或圖表的形數(shù)據(jù)可視化與Matplotlib1 常用的數(shù)據(jù)可視化工具在 Python 中已經(jīng)有很多數(shù)據(jù)可視化方面的第三方庫:專門用于開發(fā)2D圖表提供多樣化的輸出格式優(yōu)點(diǎn):使用起來極其簡(jiǎn)單;以漸進(jìn)
35、、交互式方式實(shí)現(xiàn)數(shù)據(jù)可視化;表達(dá)式和文本使用LaTeX排版;對(duì)圖像元素控制力更強(qiáng);可輸出PNG、PDF、SVG和EPS等多種格式。Matplotlib基于Matplotlib產(chǎn)生的一個(gè)模塊,專攻于統(tǒng)計(jì)可視化,可以和Pandas進(jìn)行無縫鏈接相對(duì)于Matplotlib,Seaborn語法更簡(jiǎn)潔SeabornHoloViews開源的Python庫,可用非常少的代碼行完成數(shù)據(jù)分析和可視化適合于數(shù)據(jù)的交互式探索數(shù)據(jù)可視化與Matplotlib1 常用的數(shù)據(jù)可視化工具在 數(shù)據(jù)可視化與Matplotlib1 常用的數(shù)據(jù)可視化工具在 Python 中已經(jīng)有很多數(shù)據(jù)可視化方面的第三方庫:它的API簡(jiǎn)單、友好、一
36、致,并建立在強(qiáng)大的vega - lite(交互式圖形語法)之上Altair API不包含實(shí)際的可視化呈現(xiàn)代碼,而是按照vega - lite規(guī)范發(fā)出JSON數(shù)據(jù)結(jié)構(gòu)。由此產(chǎn)生的數(shù)據(jù)可以在用戶界面中呈現(xiàn)Altair提供了交互式的、公開的,高質(zhì)量的圖表集,可與R、Python、Matlab等軟件對(duì)接。擁有在別的庫中很難找到的幾種圖表類型,如等值線圖,樹形圖和三維圖表等,圖標(biāo)類型豐富,申請(qǐng)了API密鑰后,可以一鍵將統(tǒng)計(jì)圖形同步到云端。 Plotly數(shù)據(jù)可視化與Matplotlib1 常用的數(shù)據(jù)可視化工具在 數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 Matplotlib繪圖的基本流程1.創(chuàng)建簡(jiǎn)單圖表通過pip i
37、nstall matplotlib命令進(jìn)行自動(dòng)安裝Matplotlib庫后,用Matplotlib畫圖一般需要如下5個(gè)流程:繪圖流程:導(dǎo)入模塊、創(chuàng)建畫布、制作圖形、美化圖片(添加各類標(biāo)簽和圖例)、保存并顯示圖表。1)導(dǎo)入matplotlib.pyplot模塊。import matplotlib.pyplot as plt數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 Matplotlib繪圖的基本數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 Matplotlib繪圖的基本流程2)利用figure函數(shù)創(chuàng)建畫布。由于Matplotlib的圖像均位于繪圖對(duì)象中,在繪圖前,先要?jiǎng)?chuàng)建繪圖對(duì)象。def figure(num=None, f
38、igsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=Figure, clear=False, *kwargs)數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 Matplotlib繪圖的基本數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 Matplotlib繪圖的基本流程3)繪制圖表。通過調(diào)用plot函數(shù)可實(shí)現(xiàn)在當(dāng)前繪圖對(duì)象中繪制圖表plt.plot (x, y, label, color, linewidth, linestyle)或 plt .plot (x, y, fmt,label)4)添加各類標(biāo)簽和圖例在調(diào)用pl
39、ot函數(shù)完成繪圖后,還需要為圖表添加各類標(biāo)簽和圖例。數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 Matplotlib繪圖的基本數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 Matplotlib繪圖的基本流程pyplot中添加各類標(biāo)簽和圖例的函數(shù)包括:1)plt.xlabel:指定x軸的名稱,可以指定位置、顏色、字體大小等參數(shù)。2)plt.ylabel:指定y軸的名稱,可以指定位置、顏色、字體大小等參數(shù)。3)plt.title:指定圖表的標(biāo)題,可以指定標(biāo)題名稱、位置、顏色、字體大小等參數(shù)。4)plt.xlim:指定圖形x軸的范圍,只能輸入一個(gè)數(shù)值區(qū)間,不能使用字符串。5)plt.ylim:指定圖形y軸的范圍,只能輸入一個(gè)數(shù)值
40、區(qū)間,不能使用字符串。6)plt.xticks:指定x軸刻度的數(shù)目與取值。7)plt.yticks :指定y軸刻度的數(shù)目與取值。8)plt.legend:指定當(dāng)前圖形的圖例,可以指定圖例的大小、位置和標(biāo)簽。數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 Matplotlib繪圖的基本數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 Matplotlib繪圖的基本流程5)保存和顯示圖表plt.savefig:保存繪制的圖表為圖片,可以指定圖表的分辨率、邊緣和顏色等參數(shù)。plt.show:在本機(jī)顯示圖表。【例】利用Matplotlib繪制折線圖,展現(xiàn)北京一周的天氣,比如從星期一到星期日的天氣溫度:8,7,8,9,11,7,5。#1.導(dǎo)
41、入模塊import matplotlib.pyplot as plt# 2.創(chuàng)建畫布plt.figure(figsize=(10, 10), dpi=100)# 3.繪制折線圖plt.plot(1, 2, 3, 4, 5, 6 ,7, 8,7,8,9,11,7,5)#4.添加標(biāo)簽plt.xlabel(Week)plt.ylabel(Temperature)# 5.顯示圖像plt.show()數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 Matplotlib繪圖的基本數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 Matplotlib繪圖的基本流程2.創(chuàng)建子圖在Matplotlib中,可以將個(gè)繪圖對(duì)象分為幾個(gè)繪圖區(qū)域,在每個(gè)繪圖
42、區(qū)域中可以繪制不同的圖像,這種繪圖形式稱為創(chuàng)建子圖。創(chuàng)建子圖可以使用subplot()函數(shù)subplot(numRows,numCols,plotNum)numRows:表示將整個(gè)繪圖區(qū)域等分為numRows行;numCols:表示將整個(gè)繪圖區(qū)域等分為numCols列;plotNum:表示當(dāng)前選中要操作的區(qū)域。數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 Matplotlib繪圖的基本數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2 Matplotlib繪圖的基本流程【例】創(chuàng)建3個(gè)子圖,分別繪制正弦函數(shù)、余弦函數(shù)和線性函數(shù)。#1.導(dǎo)入模塊import matplotlib.pyplot as pltimport numpy as
43、 npx = np.linspace(0,10,80)y = np.sin(x)z = np.cos(x)k = x#第一行的左圖plt.subplot(221)plt.plot(x,z,r-,label=$cos(x)$)#第一行的右圖plt.subplot(222)plt.plot(x,y,label=$sin(x)$,color=blue,linewidth=2)#第二整行plt.subplot(212)plt.plot(x,k,g-,label=$x$)plt.legend()plt.savefig(image.png,dpi=100)plt.show()數(shù)據(jù)統(tǒng)計(jì)分析與Pandas2
44、Matplotlib繪圖的基本數(shù)據(jù)統(tǒng)計(jì)分析與Pandas3 Matplotlib的基礎(chǔ)繪圖功能1完善原始折線圖:給圖形添加輔助功能(1)準(zhǔn)備數(shù)據(jù)并畫出初始折線圖y_hangzhou = random.uniform(15, 18) for i in x(2)添加自定義x,y刻度1)plt.xticks(x, *kwargs)x:要顯示的刻度值2)plt.yticks(y, *kwargs)y:要顯示的刻度值# 構(gòu)造x軸刻度標(biāo)簽x_ticks_label = 11點(diǎn)分.format(i) for i in x# 構(gòu)造y軸刻度y_ticks = range(40)# 修改x,y軸坐標(biāo)的刻度顯示pl
45、t.xticks(x:5, x_ticks_label:5)plt.yticks(y_ticks:5)數(shù)據(jù)統(tǒng)計(jì)分析與Pandas3 Matplotlib的基礎(chǔ)繪圖數(shù)據(jù)統(tǒng)計(jì)分析與Pandas3 Matplotlib的基礎(chǔ)繪圖功能(3)解決中文顯示問題在Python腳本中動(dòng)態(tài)設(shè)置matplotlibrc,這樣也可以避免由于更改配置文件而造成的麻煩from pylab import mpl# 設(shè)置顯示中文字體mpl.rcParamsfont.sans-serif = SimHei有時(shí)候字體更改后,會(huì)導(dǎo)致坐標(biāo)軸中的部分字符無法正常顯示,此時(shí)需要更改axes.unicode_minus參數(shù)。# 設(shè)置正常顯示符號(hào)mpl.rcParamsaxes.unicode_minus = False(4)添加網(wǎng)格顯示plt.grid(True, linestyle=-, alpha=0.5)數(shù)據(jù)統(tǒng)計(jì)分析與Pandas3 Matplotlib的基礎(chǔ)繪圖數(shù)據(jù)統(tǒng)計(jì)分析與Pandas3 Matplotlib的基礎(chǔ)繪圖功能(5)添加描述信息添加x軸、y軸描述信息及標(biāo)題,通過fontsize參數(shù)修改圖像中字體大小。plt.xlabel(時(shí)間)plt.ylabel(溫度)plt.title(中午11點(diǎn)0分到12點(diǎn)之間的溫度變化圖示, fontsize=20)(6)圖像保存pl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版門窗行業(yè)市場(chǎng)拓展與渠道建設(shè)合同4篇
- 2025版寵物醫(yī)院害蟲防治與寵物健康服務(wù)合同4篇
- 2025年度鎳氫電池關(guān)鍵部件研發(fā)與制造合同4篇
- 二零二五年度智慧交通管理系統(tǒng)詢價(jià)合同協(xié)議書3篇
- 二零二五年度智能交通管理系統(tǒng)采購(gòu)合同樣本3篇
- 二零二五年度奶業(yè)集團(tuán)奶制品品牌授權(quán)及銷售合同
- 2025年度路燈采購(gòu)安裝及LED照明產(chǎn)品研發(fā)合同3篇
- 二零二五年度機(jī)關(guān)辦公樓物業(yè)智能化升級(jí)改造服務(wù)合同5篇
- 2025年度智能化培訓(xùn)學(xué)校教師團(tuán)隊(duì)聘用合同4篇
- 二零二五年度模特廣告代言聘用合同
- 數(shù)學(xué)-山東省2025年1月濟(jì)南市高三期末學(xué)習(xí)質(zhì)量檢測(cè)濟(jì)南期末試題和答案
- 中儲(chǔ)糧黑龍江分公司社招2025年學(xué)習(xí)資料
- 河南退役軍人專升本計(jì)算機(jī)真題答案
- 湖南省長(zhǎng)沙市2024-2025學(xué)年高一數(shù)學(xué)上學(xué)期期末考試試卷
- 船舶行業(yè)維修保養(yǎng)合同
- 駕駛證學(xué)法減分(學(xué)法免分)試題和答案(50題完整版)1650
- 2024年林地使用權(quán)轉(zhuǎn)讓協(xié)議書
- 物流有限公司安全生產(chǎn)專項(xiàng)整治三年行動(dòng)實(shí)施方案全國(guó)安全生產(chǎn)專項(xiàng)整治三年行動(dòng)計(jì)劃
- 2025屆江蘇省13市高三最后一卷生物試卷含解析
- 產(chǎn)鉗助產(chǎn)護(hù)理查房
- 招聘專員轉(zhuǎn)正述職報(bào)告
評(píng)論
0/150
提交評(píng)論