財經(jīng)大數(shù)據(jù)技術(shù)應(yīng)用基礎(chǔ) 課件 項目五 數(shù)據(jù)預(yù)處理_第1頁
財經(jīng)大數(shù)據(jù)技術(shù)應(yīng)用基礎(chǔ) 課件 項目五 數(shù)據(jù)預(yù)處理_第2頁
財經(jīng)大數(shù)據(jù)技術(shù)應(yīng)用基礎(chǔ) 課件 項目五 數(shù)據(jù)預(yù)處理_第3頁
財經(jīng)大數(shù)據(jù)技術(shù)應(yīng)用基礎(chǔ) 課件 項目五 數(shù)據(jù)預(yù)處理_第4頁
財經(jīng)大數(shù)據(jù)技術(shù)應(yīng)用基礎(chǔ) 課件 項目五 數(shù)據(jù)預(yù)處理_第5頁
已閱讀5頁,還剩104頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

五數(shù)據(jù)預(yù)處理項目項目六學(xué)習(xí)目標(biāo)知識目標(biāo)理解NumPy的含義、數(shù)據(jù)類型和Ndarray創(chuàng)建方法;掌握NumPy數(shù)組的創(chuàng)建、操作、算術(shù)運(yùn)算和統(tǒng)計方法;掌握Pandas的引入、Series和DataFrame的創(chuàng)建與基本操作;精通處理數(shù)據(jù)中的重復(fù)、缺失、類型轉(zhuǎn)換問題,及數(shù)據(jù)連接方法。能力目標(biāo)能正確利用NumPy庫的算術(shù)函數(shù)進(jìn)行運(yùn)算;能正確利用DataFrame的函數(shù),進(jìn)行DataFrame的創(chuàng)建、增刪列等基本操作;能正確利用Pandas庫的read_excel()讀取數(shù)據(jù)、fillna()填充缺失值等操作。項目六學(xué)習(xí)目標(biāo)素質(zhì)目標(biāo)在協(xié)同進(jìn)行數(shù)據(jù)預(yù)處理時,培養(yǎng)學(xué)生的團(tuán)隊協(xié)作精神和集體意識。在NumPy創(chuàng)建數(shù)組、算術(shù)計算中,培養(yǎng)學(xué)生嚴(yán)謹(jǐn)認(rèn)真的態(tài)度。在進(jìn)行數(shù)據(jù)清洗過程中,要求學(xué)生堅持誠實守信、弘揚(yáng)誠信文化,強(qiáng)化誠信為本、不弄虛作假的職業(yè)道德。項目六思維導(dǎo)圖5.1NumPy數(shù)值計算NumPy(NumericalPython的簡稱)是一個開源的Python數(shù)值計算庫,它支持大量的維度數(shù)組和矩陣運(yùn)算,此外也針對數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫。5.1.1NumPy概述5.1NumPy數(shù)值計算強(qiáng)大的N維數(shù)組對象NumPy特點(diǎn)15.1.1NumPy概述5.1NumPy數(shù)值計算廣播功能使用方便高性能NumPy數(shù)據(jù)類型25.1.1NumPy概述5.1NumPy數(shù)值計算bool用于表示邏輯值,即真(True)或假(False)int用于表示整數(shù)值。根據(jù)存儲大小和范圍,它可以有不同的類型uint表示無符號整數(shù),即不包含負(fù)數(shù)的整數(shù)。float用于表示浮點(diǎn)數(shù)值,即帶有小數(shù)點(diǎn)的數(shù)值。complex用于表示復(fù)數(shù)值,包含實部和虛部。數(shù)據(jù)類型對象(dtype)是一個系統(tǒng)用來描述數(shù)組中元素類型的對象。數(shù)據(jù)類型對象(dtype)31.了解dtype5.1.1NumPy概述5.1NumPy數(shù)值計算(1)數(shù)據(jù)類型(2)大?。?)字節(jié)順序(4)形狀數(shù)據(jù)類型對象(dtype)32.創(chuàng)建dtype對象行號代碼行1importnumpyasnp2#創(chuàng)建一個整數(shù)類型的NumPy數(shù)組3int_array=np.array([1,2,3,4],dtype=32)4#創(chuàng)建一個浮點(diǎn)類型的NumPy數(shù)組5float_array=np.array([1.1,2.2,3.3,4.4],dtype=np.float64)6#創(chuàng)建一個復(fù)數(shù)類型的NumPy數(shù)組7complex_array=np.array([1+2j,3+4j],dtype=plex128)8print(int_array)9print(float_array)10print(complex_array)5.1.1NumPy概述5.1NumPy數(shù)值計算數(shù)據(jù)類型對象(dtype)33.自定義dtype自定義dtype允許定義一個包含多個字段的數(shù)據(jù)類型,每個字段可以有自己的數(shù)據(jù)類型、名稱和字節(jié)順序。自定義dtype對象是使用以下語法構(gòu)造的:numpy.dtype(object,align,copy)指要轉(zhuǎn)換為的數(shù)據(jù)類型對象align如果為true,填充字段使其類似C的結(jié)構(gòu)體copy是復(fù)制dtype對象,如果為false,則是對內(nèi)置數(shù)據(jù)類型對象的引用5.1.1NumPy概述5.1NumPy數(shù)值計算數(shù)據(jù)類型對象(dtype)33.自定義dtype行號代碼行1importnumpyasnp2#定義一個自定義dtype3custom_dtype=np.dtype([4

('姓名','U10'),#長度為10的Unicode字符串5

('年齡',32),#32位整數(shù)字段6

('體重',np.float64)#雙精度浮點(diǎn)數(shù)字段7])8#使用自定義dtype創(chuàng)建結(jié)構(gòu)化數(shù)組9data=np.array([10

('王歡',30,65.5),11

('蘭英',25,75.0),12

('付杰',35,85.5)13],dtype=custom_dtype)14#訪問結(jié)構(gòu)化數(shù)組中的字段15print(data['姓名'])#訪問'姓名'字段16print(data['年齡'])#訪問'年齡'字段17print(data['體重'])#訪問'體重'字段5.1.1NumPy概述5.1NumPy數(shù)值計算數(shù)據(jù)類型對象(dtype)34.字節(jié)順序當(dāng)處理來自不同硬件平臺的數(shù)據(jù)時,字節(jié)順序變得重要??梢栽赿type中指定字節(jié)順序:<表示數(shù)據(jù)是小端序,>表示數(shù)據(jù)是大端序。下面定義一個小端序的int64數(shù)據(jù)類型,代碼如例5-3所示。行號代碼行1importnumpyasnp2#預(yù)設(shè)字節(jié)順序3dt=np.dtype('<i8')4print(dt)5.1.1NumPy概述5.1NumPy數(shù)值計算Ndarray(N-dimensionalarray)對象是NumPy庫的核心數(shù)據(jù)結(jié)構(gòu),用于存儲和操作大型多維數(shù)組與矩陣。Ndarray是一個快速、靈活的大數(shù)據(jù)容器,可以存儲單一數(shù)據(jù)類型的大量數(shù)據(jù),并提供了一系列操作這些數(shù)據(jù)的方法。5.1.2Ndarray對象5.1NumPy數(shù)值計算5.1.2Ndarray對象5.1NumPy數(shù)值計算Ndarray內(nèi)部組成11.數(shù)據(jù)指針

2.數(shù)據(jù)類型(dtype)

3.形狀(shape)

4.跨度(strides)5.1.2Ndarray對象5.1NumPy數(shù)值計算創(chuàng)建Ndarray2numpy.array(object,

dtype

=

None,

copy

=

True,

order

=

None,

subok

=

False,

ndmin

=

0)數(shù)組或嵌套的數(shù)列數(shù)組元素的數(shù)據(jù)類型,可選對象是否需要復(fù)制,可選創(chuàng)建一個ndarray可以調(diào)用NumPy的array函數(shù)創(chuàng)建數(shù)組的樣式,C為行方向,F(xiàn)為列方向,A為任意方向(默認(rèn))默認(rèn)返回一個與基類類型一致的數(shù)組指定生成數(shù)組的最小維度組創(chuàng)建ndarray對象,代碼例5-4所示創(chuàng)建Ndarray25.1.2Ndarray對象5.1NumPy數(shù)值計算行號代碼行1importnumpyasnp2#創(chuàng)建一個一維數(shù)組3a=np.array([1,2,3])4print(a)5#輸出:[123]6#創(chuàng)建一個二維數(shù)組7b=np.array([[1,2,3],[4,5,6]])8print(b)9#輸出:10#[[123]11#[456]]創(chuàng)建ndarray對象,代碼例5-4所示創(chuàng)建Ndarray25.1.2Ndarray對象5.1NumPy數(shù)值計算12#指定生成數(shù)組的數(shù)據(jù)類型13c=np.array([1,2,3],dtype=complex)14print(c)15#輸出:[1.+0.j2.+0.j3.+0.j]16#使用ndmin指定數(shù)組的最小維數(shù)17d=np.array([1,2,3],ndmin=2)18print(d)19#輸出:20#[[123]]常見的NumPy數(shù)組對象屬性15.1.3NumPy數(shù)組對象屬性5.1NumPy數(shù)值計算屬性說明ndarray.ndim秩,即軸的數(shù)量或維度的數(shù)量ndarray.shape數(shù)組的維度,對于矩陣,n行m列ndarray.size數(shù)組元素的總個數(shù),相當(dāng)于.shape中n*m的值ndarray.dtypendarray對象的元素類型ndarray.itemsizendarray對象中每個元素的大小,以字節(jié)為單位ndarray.flagsndarray對象的內(nèi)存信息ndarray.realndarray元素的實部ndarray.imagndarray元素的虛部ndarray.data包含實際數(shù)組元素的緩沖區(qū),由于一般通過數(shù)組的索引獲取元素,所以通常不需要使用這個屬性NumPy數(shù)組的維數(shù)25.1.3NumPy數(shù)組對象屬性5.1NumPy數(shù)值計算

NumPy數(shù)組的維數(shù)稱為秩(rank),秩就是軸(axis)的數(shù)量,即數(shù)組的維度,一維數(shù)組的秩為1,二維數(shù)組的秩為2。很多時候可以聲明axis。axis=0,表示沿著第0軸進(jìn)行操作,即對每一列進(jìn)行操作;axis=1,表示沿著第1軸進(jìn)行操作,即對每一行進(jìn)行操作。5.1.3NumPy數(shù)組對象屬性5.1NumPy數(shù)值計算

創(chuàng)建一個二維數(shù)組,通過常見的數(shù)組屬性查看數(shù)組的維度、形狀、數(shù)據(jù)類型、元素大小等。代碼如例5-5所示。行號代碼行1importnumpyasnp2#創(chuàng)建一個2x3的整數(shù)數(shù)組3a=np.array([[1,2,3],[4,5,6]])4print("數(shù)組:\n",a)5print("維度:",a.ndim)#維度6print("形狀:",a.shape)#形狀7print("元素總數(shù):",a.size)#元素總數(shù)8print("元素數(shù)據(jù)類型:",a.dtype)#元素數(shù)據(jù)類型9print("每個元素的大小:",a.itemsize)#每個元素的大小5.1.4Numpy創(chuàng)建數(shù)組5.1NumPy數(shù)值計算numpy.zeros()函數(shù)1numpy.zeros()函數(shù)用于創(chuàng)建一個全零的數(shù)組。通過傳遞一個整數(shù)或者一個表示形狀的元組來指定數(shù)組的形狀。語法結(jié)構(gòu)如下:numpy.zeros(shape,dtype=float,order='C')數(shù)組的形狀(可選)是數(shù)組的數(shù)據(jù)類型,默認(rèn)為float64(可選)在C或Fortran中的內(nèi)存存儲順序,默認(rèn)為“C”5.1.4Numpy創(chuàng)建數(shù)組5.1NumPy數(shù)值計算

創(chuàng)建一個一維、二維全零數(shù)組,代碼如例5-6所示。行號代碼行1importnumpyasnp2#創(chuàng)建一個形狀為(3,)的一維全零數(shù)組3a=np.zeros(3)4#創(chuàng)建一個3x3的二維全零數(shù)組5b=np.zeros((3,3))6print(a)7print(b)000000000000np.zeros(3)np.zeros((3,3))5.1.4Numpy創(chuàng)建數(shù)組5.1NumPy數(shù)值計算numpy.empty()函數(shù)2numpy.empty()用于生成一個給定形狀(shape)和數(shù)據(jù)類型(dtype)的新數(shù)組,其初始內(nèi)容是隨機(jī)的,取決于內(nèi)存的狀態(tài)。語法結(jié)構(gòu):numpy.empty(shape,dtype=float,order='C')參數(shù)與numpy.zeros()相同。5.1.4Numpy創(chuàng)建數(shù)組5.1NumPy數(shù)值計算

下面創(chuàng)建一個2×2的未初始化的數(shù)組,代碼如例5-7所示。行號代碼行1importnumpyasnp2#創(chuàng)建一個2x2的未初始化的數(shù)組3a=np.empty((2,2))

4print(a)1.1.1.1.np.empty((2,2))5.1.4Numpy創(chuàng)建數(shù)組5.1NumPy數(shù)值計算numpy.ones()函數(shù)3numpy.ones()用于創(chuàng)建指定形狀的數(shù)組,數(shù)組元素以1來填充。語法結(jié)構(gòu):numpy.ones(shape,dtype=None,order='C')參數(shù)與numpy.zeros()相同。5.1.4Numpy創(chuàng)建數(shù)組5.1NumPy數(shù)值計算numpy.ones()函數(shù)3創(chuàng)建一個一維、二維全一數(shù)組,代碼如例5-8所示。行號代碼行1importnumpyasnp2#創(chuàng)建一個形狀為(4,)的一維全一數(shù)組3a=np.ones(4)4#創(chuàng)建一個4x4的二維全一數(shù)組5b=np.ones((4,4))6print(a)7print(b)11111111111111111111np.ones(4)np.ones((4,4))np.ones()函數(shù)返回的數(shù)組元素類型默認(rèn)為float645.1.5NumPy切片與操作5.1NumPy數(shù)值計算切片的基本語法:array[start:end:step],其中start是切片的起始索引,end是切片的結(jié)束索引(不包含),step是切片的步長。創(chuàng)建一個一維數(shù)組進(jìn)行切片操作,代碼如例5-9所示。行號代碼行1importnumpyasnp2#創(chuàng)建一個NumPy數(shù)組3arr=np.array([0,1,2,3,4,5,6,7,8,9])4#切片操作示例5sub_arr=arr[2:7:2]#從索引2開始到索引7(不包含7),步長為26print(sub_arr)5.1.5NumPy切片與操作5.1NumPy數(shù)值計算arr[2:7:2]0001122334455667788990001122334455667788995.1.5NumPy切片與操作5.1NumPy數(shù)值計算切片用法12.使用負(fù)數(shù)索引

負(fù)數(shù)索引是一種便捷的索引方式,允許從數(shù)組的末尾開始反向計數(shù)。這有利于快速訪問數(shù)組的末尾元素。例5-10代碼錄入行號代碼行1importnumpyasnp2arr=np.array([0,1,2,3,4,5,6,7,8,9])3#使用負(fù)數(shù)索引切片4last_elements=arr[-4:-1]#取最后四個元素中的前三個5print(last_elements)5.1.5NumPy切片與操作5.1NumPy數(shù)值計算arr[-4:-1]-100-91-82-73-64-55-46-37-28-19-100-91-82-73-64-55-46-37-28-195.1.5NumPy切片與操作5.1NumPy數(shù)值計算切片用法13.省略切片參數(shù)

切片操作允許省略某些參數(shù),從而提供更大的靈活性。當(dāng)你省略切片參數(shù)時,NumPy會使用默認(rèn)值來填補(bǔ)這些省略的部分。例5-11代碼錄入行號代碼行1importnumpyasnp2arr=np.array([0,1,2,3,4,5,6,7,8,9])3#省略start,表示從數(shù)組開始位置切片4a=arr[:5]#從開始到索引5(不包含5)5print(a)6#省略end,表示切片到數(shù)組末尾7b=arr[5:]#從索引5開始到數(shù)組末尾8print(b)9#同時省略start和end,表示切片整個數(shù)組,可以用step來取每隔幾個元素的值10c=arr[::2]#取所有索引為偶數(shù)的元素11print(c)5.1.5NumPy切片與操作5.1NumPy數(shù)值計算arr[:5]000112233445566778899000112233445566778899arr[5:]000112233445566778899arr[::2]0001122334455667788995.1.5NumPy切片與操作5.1NumPy數(shù)值計算切片用法14.多維數(shù)組的切片

在多維數(shù)組中,使用逗號來分隔不同維度的切片。使用冒號來指定維度的范圍。例5-12代碼錄入行號代碼行1importnumpyasnp2arr_2d=np.array([[0,1,2],[3,4,5],[6,7,8],[9,10,11]])3#取第1到3行(不包含第3行),第0到2列(不包含第2列)的子數(shù)組4sub_arr_2d=arr_2d[1:3,0:2]5print(sub_arr_2d)5.1.5NumPy切片與操作5.1NumPy數(shù)值計算arr_2d[1:3,0:2]0120012134526783910110120012134526783910115.1.5NumPy切片與操作5.1NumPy數(shù)值計算數(shù)組操作21.數(shù)組形狀的變換

數(shù)組形狀變換最常用的方法是reshape(),這個方法可以在不改變數(shù)組數(shù)據(jù)的前提下,給數(shù)組一個新的形狀。例5-13代碼錄入行號代碼行1importnumpyasnp2arr=np.array([0,1,2,3,4,5,6,7,8,9])3#改變數(shù)組的形狀,不改變數(shù)據(jù)4reshaped_arr=arr.reshape(2,5)#將一維數(shù)組重塑為2行5列的二維數(shù)組5print(reshaped_arr)5.1.5NumPy切片與操作5.1NumPy數(shù)值計算數(shù)組操作21.數(shù)組形狀的變換0123456789arr.reshape(2,5)0123456789255.1.5NumPy切片與操作5.1NumPy數(shù)值計算數(shù)組操作22.數(shù)組的拼接

數(shù)組的拼接是指將兩個或多個數(shù)組合并為一個數(shù)組。NumPy提供了多種方法來執(zhí)行數(shù)組的拼接,最基礎(chǔ)的數(shù)組拼接函數(shù)是np.concatenate(),它允許沿指定的軸連接一個數(shù)組序列。下面拼接兩個數(shù)組例5-14代碼錄入行號代碼行1importnumpyasnp2#拼接兩個數(shù)組

3arr1=np.array([1,2,3])4arr2=np.array([4,5,6])5concatenated_arr=np.concatenate((arr1,arr2))6print(concatenated_arr)5.1.5NumPy切片與操作5.1NumPy數(shù)值計算數(shù)組操作22.數(shù)組的拼接arr1arr2123456np.concatenate((arr1,arr2))1234565.1.5NumPy切片與操作5.1NumPy數(shù)值計算數(shù)組操作23.數(shù)組的轉(zhuǎn)置

數(shù)組的轉(zhuǎn)置是將數(shù)組的行列被互換以產(chǎn)生新的數(shù)組。在NumPy中,可以使用.T屬性或者np.transpose()函數(shù)來實現(xiàn)數(shù)組的轉(zhuǎn)置。例5-14代碼錄入行號代碼行1importnumpyasnp2#創(chuàng)建一個二維數(shù)組

3array=np.array([[1,2,3],[4,5,6],[7,8,9]])4transposed_array=array.T5print("使用.T屬性轉(zhuǎn)置后的數(shù)組:")6print(transposed_array)7#或者使用np.transpose()函數(shù)進(jìn)行轉(zhuǎn)置8transposed_array_func=np.transpose(array)9print(transposed_array_func)5.1.5NumPy切片與操作5.1NumPy數(shù)值計算array.T或np.transpose(array)0120123145627890120147125823695.1.6Numpy算術(shù)計算5.1NumPy數(shù)值計算基本算術(shù)函數(shù)1NumPy算術(shù)函數(shù)包含簡單的加減乘除:add(),subtract(),multiply()和divide()。首先創(chuàng)建兩個數(shù)組a和b:a=np.array([1,2,3])b=np.array([4,5,6])1234565.1.6Numpy算術(shù)計算5.1NumPy數(shù)值計算基本算術(shù)函數(shù)1a+b或np.add(a,b)

123456579加法a-b或np.subtract(a,b)

123456-3-3-3減法5.1.6Numpy算術(shù)計算5.1NumPy數(shù)值計算基本算術(shù)函數(shù)1a*b或np.multiply(a,b)

12345641018乘法a/b或np.divide(a,b)

1234560.250.40.5除法5.1.6Numpy算術(shù)計算5.1NumPy數(shù)值計算Numpy.power()函數(shù)2

Numpy.power()函數(shù)用于數(shù)組元素的逐元素冪運(yùn)算。Numpy.power()函數(shù)接受兩個數(shù)組作為輸入:第一個數(shù)組是底數(shù),第二個數(shù)組是指數(shù)。語法結(jié)構(gòu):numpy.power(x1,x2)

x1代表底數(shù)數(shù)組

x2代表指數(shù)數(shù)組5.1.6Numpy算術(shù)計算5.1NumPy數(shù)值計算

下面進(jìn)行冪運(yùn)算,代碼如例5-17所示。行號代碼行1importnumpyasnp2#示例1:標(biāo)量的冪運(yùn)算3base=24exponent=35result=np.power(base,exponent)6print(result)7#示例2:數(shù)組的冪運(yùn)算,使用相同的指數(shù)8base_array=np.array([1,2,3,4])9exponent=210result_array=np.power(base_array,exponent)11print(result_array)12#示例3:數(shù)組的冪運(yùn)算,使用指數(shù)數(shù)組13base_array=np.array([1,2,3,4])14exponent_array=np.array([0,1,2,3])15result_array=np.power(base_array,exponent_array)16print(result_array)5.1.6Numpy算術(shù)計算5.1NumPy數(shù)值計算其他函數(shù)3

除了上述數(shù)學(xué)函數(shù)的例子,numpy還支持非常多的數(shù)學(xué)函數(shù),以下是一些常用函數(shù),代碼如例5-18所示。行號代碼行1importnumpyasnp2score=np.array([[88,80],[67,83],[74,75],[67,79],[56,76]])3print(score)4print('根據(jù)行取最大值:\n',score.max(axis=0))#根據(jù)行取最大值5print('根據(jù)行取最小值:\n',score.min(axis=0))#根據(jù)行取最小值6print('根據(jù)列求和:\n',score.sum(axis=1))#根據(jù)列求和7print('根據(jù)行求和:\n',score.sum(axis=0))#根據(jù)行求和8print('根據(jù)行求平均數(shù):\n',score.mean(axis=0))#根據(jù)行求平均數(shù)9print('根據(jù)行求標(biāo)準(zhǔn)差:\n',score.std(axis=0))#根據(jù)行求標(biāo)準(zhǔn)差5.1.7Numpy統(tǒng)計函數(shù)5.1NumPy數(shù)值計算中位數(shù)(Median)1

使用numpy.median()函數(shù)計算數(shù)組中元素的中位數(shù),代碼如例5-19所示。行號代碼行1importnumpyasnp2arr=np.array([1,2,3,4,5])3median=np.median(arr)4print(median)#輸出數(shù)組的中位數(shù)12345中位數(shù)123455.1.7Numpy統(tǒng)計函數(shù)5.1NumPy數(shù)值計算標(biāo)準(zhǔn)差(StandardDeviation)2

使用numpy.std()返回數(shù)組的方差,接例5-19,代碼及運(yùn)行結(jié)果如下所示。行號代碼行1importnumpyasnp2arr=np.array([1,2,3,4,5])3std_dev=np.std(arr)4print(std_dev)#輸出數(shù)組的標(biāo)準(zhǔn)差標(biāo)準(zhǔn)差123451.41421356237309515.1.7Numpy統(tǒng)計函數(shù)5.1NumPy數(shù)值計算方差(Variance)3

使用numpy.var()返回數(shù)組的標(biāo)準(zhǔn)差,接例5-19,代碼及運(yùn)行結(jié)果如下所示。行號代碼行1importnumpyasnp2arr=np.array([1,2,3,4,5])3variance=np.var(arr)4print(variance)#輸出數(shù)組的方差方差123452.05.1.7Numpy統(tǒng)計函數(shù)5.1NumPy數(shù)值計算最大值(Max)和最小值(Min)4

使用numpy.max()、numpy.min()函數(shù)返回數(shù)組中元素最大值與最小值,接例5-19,代碼及運(yùn)行結(jié)果如下所示。行號代碼行1importnumpyasnp2arr=np.array([1,2,3,4,5])3max_value=np.max(arr)4min_value=np.min(arr)5print(max_value,min_value)#輸出數(shù)組的最大值和最小值1234512345最小值最大值5.2Pandas數(shù)據(jù)結(jié)構(gòu)

Pandas是Python第三方庫,以其高效的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具著稱。它是構(gòu)建在NumPy之上,專為解決關(guān)系型數(shù)據(jù)操作、時間序列分析及數(shù)據(jù)清洗等問題設(shè)計的。Pandas提供了靈活易用的數(shù)據(jù)結(jié)構(gòu),主要有Series和DataFrame兩種核心數(shù)據(jù)結(jié)構(gòu),使得處理大規(guī)模數(shù)據(jù)集時能更加便捷高效。5.2.1Pandas庫簡介5.2Pandas數(shù)據(jù)結(jié)構(gòu)Pandas庫主要功能有:5.2.1Pandas庫簡介5.2Pandas數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)讀寫Pandas支持多種格式的數(shù)據(jù)讀寫,包括CSV、Excel、JSON、HTML以及數(shù)據(jù)庫格式。數(shù)據(jù)清洗Pandas提供多種便捷的方法來處理丟失數(shù)據(jù)以及篩選、轉(zhuǎn)換和清洗數(shù)據(jù)集數(shù)據(jù)加工它擁有強(qiáng)大的數(shù)據(jù)加工能力,可以輕松地進(jìn)行數(shù)據(jù)合并、拼接、分組、聚合以及強(qiáng)大的時間序列功能自動化處理相比Excel的手動操作,Pandas可以通過腳本自動化處理數(shù)據(jù)Series是一維標(biāo)簽數(shù)組,能夠保存任何數(shù)據(jù)類型(整數(shù)、字符串、浮點(diǎn)數(shù)、Python列表等)。它有一個標(biāo)簽軸(axislabel),可以想象成Excel中的一列。Series對象的基本屬性包括values(數(shù)據(jù))和index(標(biāo)簽)如下表所示。5.2.2Series5.2Pandas數(shù)據(jù)結(jié)構(gòu)Index(標(biāo)簽)Values(數(shù)據(jù))數(shù)據(jù)類型010整數(shù)1'a'字符串23.14浮點(diǎn)數(shù)3[1,2,3]Python列表Series對象在Pandas庫中可以通過多種方式創(chuàng)建,最常見的是從列表或字典創(chuàng)建,函數(shù)如下:5.2.2Series5.2Pandas數(shù)據(jù)結(jié)構(gòu)pd.Series(

data

,

index

,

dtype

,

name

,

copy

)data可以由列表、字典等作為參數(shù)來創(chuàng)建index可用列表自定義,必須與數(shù)據(jù)列的個數(shù)匹配,不填時默認(rèn)從0開始dtype是數(shù)據(jù)類型,默認(rèn)自己判斷name可設(shè)置名稱copy用于拷貝數(shù)據(jù),默認(rèn)為False從列表或字典創(chuàng)建Series,代碼如例5-21、5-22、5-23所示。5.2.2Series5.2Pandas數(shù)據(jù)結(jié)構(gòu)例5-21代碼錄入行號代碼行1importpandasaspd2#從列表創(chuàng)建Series3my_series=pd.Series([1,2,3,4,5])4print(my_series)5#根據(jù)索引值讀取數(shù)據(jù)6print(my_series[1])從列表或字典創(chuàng)建Series,代碼如例5-21、5-22、5-23所示。5.2.2Series5.2Pandas數(shù)據(jù)結(jié)構(gòu)例5-22代碼錄入行號代碼行1importpandasaspd2#從列表創(chuàng)建Series,自定義索引3my_series=pd.Series([6,7,8],index=['X','Y','Z'])4print(my_series)5#根據(jù)索引值讀取數(shù)據(jù)6print(my_series['Z'])從列表或字典創(chuàng)建Series,代碼如例5-21、5-22、5-23所示。5.2.2Series5.2Pandas數(shù)據(jù)結(jié)構(gòu)例5-23代碼錄入行號代碼行1importpandasaspd2#從字典創(chuàng)建Series,這里字典的鍵自動成為索引3my_dict=pd.Series({1:'a',2:'b',3:'c'})4print(my_dict)5#根據(jù)索引值讀取數(shù)據(jù)6print(my_dict[3])DataFrame是Pandas庫中的一個二維標(biāo)簽化數(shù)據(jù)結(jié)構(gòu),可以將其想象成一個Excel表格,有行有列。5.2.3DataFrame5.2Pandas數(shù)據(jù)結(jié)構(gòu)DataFrame由其同名函數(shù)創(chuàng)建,語法為:pd.DataFrame(data,index,columns,dtype,copy)5.2.3DataFrame5.2Pandas數(shù)據(jù)結(jié)構(gòu)DataFrame的創(chuàng)建1參數(shù)說明data包含在DataFrame中的數(shù)據(jù)index索引值,或者可以稱為行標(biāo)簽,如果未提供,則默認(rèn)為整數(shù)范圍(0到n-1,其中n是數(shù)據(jù)的長度)columns列標(biāo)簽,如果未提供,則默認(rèn)為從0開始的整數(shù)。如果數(shù)據(jù)是字典形式,字典的鍵將被用作列名,除非提供了此參數(shù)。dtype數(shù)據(jù)類型copy拷貝數(shù)據(jù),默認(rèn)為False,如果想確保原始數(shù)據(jù)不被修改,可以設(shè)置copy=True。通過列表、字典等數(shù)據(jù)類型創(chuàng)建DataFrame,代碼如例5-24、5-25、5-26所示:5.2.3DataFrame5.2Pandas數(shù)據(jù)結(jié)構(gòu)例5-24代碼錄入行號代碼行1importpandasaspd2#通過列表創(chuàng)建DataFrame3data=[['張明',14,88],['李麗',13,92],['王強(qiáng)',14,95]]4df=pd.DataFrame(data,columns=['姓名','年齡','分?jǐn)?shù)'])5print(df)通過列表、字典等數(shù)據(jù)類型創(chuàng)建DataFrame,代碼如例5-24、5-25、5-26所示:5.2.3DataFrame5.2Pandas數(shù)據(jù)結(jié)構(gòu)例5-25代碼錄入行號代碼行1importpandasaspd2#從字典的列表創(chuàng)建DataFrame3data=[{'姓名':'張明','年齡':14,'分?jǐn)?shù)':88},{'姓名':'李麗','年齡':13,'分?jǐn)?shù)':92},{'姓名':'王強(qiáng)','年齡':14,'分?jǐn)?shù)':95}]4df=pd.DataFrame(data)5print(df)6#通過loc屬性返回指定行的數(shù)據(jù)7df.loc[0:1]#返回第一行和第二行通過列表、字典等數(shù)據(jù)類型創(chuàng)建DataFrame,代碼如例5-24、5-25、5-26所示:5.2.3DataFrame5.2Pandas數(shù)據(jù)結(jié)構(gòu)例5-26代碼錄入行號代碼行1importpandasaspd2#從字典的字典創(chuàng)建DataFrame,并指定行索引3data={'A':[1,2],'B':[3,4]}4df=pd.DataFrame(data,index=['Row1','Row2'])5print(df)DataFrame的基本操作有行列重命名、插入新列、刪除數(shù)據(jù)、查看數(shù)據(jù)等,常用操作方法如表5-5所示。5.2.3DataFrame5.2Pandas數(shù)據(jù)結(jié)構(gòu)DataFrame的基本操作2常用操作方法說明rename()修改行索引/列名insert()插入列drop()刪除指定行或列head(n)返回DataFrame前n行tail(n)返回DataFrame后n行①行列重命名5.2.3DataFrame5.2Pandas數(shù)據(jù)結(jié)構(gòu)DataFrame的基本操作2

rename()用于重命名行索引或列標(biāo)簽,修改列名傳入columns參數(shù)、修改行索引傳入index參數(shù)。語法為:df.rename(mapper=None,index=None,columns=None,axis=None,copy=True,inplace=False,level=None,errors='ignore')①行列重命名5.2.3DataFrame5.2Pandas數(shù)據(jù)結(jié)構(gòu)

將學(xué)生成績單使用rename()方法對列標(biāo)簽和行標(biāo)簽進(jìn)行重命名,代碼如下行號代碼行1importpandasaspd2#創(chuàng)建學(xué)生成績單3data=[{'姓名':'張明','年齡':14,'分?jǐn)?shù)':88},{'姓名':'李麗','年齡':13,'分?jǐn)?shù)':92},{'姓名':'王強(qiáng)','年齡':14,'分?jǐn)?shù)':95}]4df=pd.DataFrame(data)5#將列標(biāo)簽重命名6df.rename(columns={'姓名':'名字','分?jǐn)?shù)':'成績'},inplace=True)7print(df)8#將行標(biāo)簽重命名9df.rename(index={0:'學(xué)生1',1:'學(xué)生2',2:'學(xué)生3'},inplace=True)10print(df)②插入新列5.2.3DataFrame5.2Pandas數(shù)據(jù)結(jié)構(gòu)DataFrame的基本操作2

insert()用于DataFrame中插入新的列,可以指定要插入列的位置和列的名稱,以及列的值。語法如下:df.insert(loc,column,value,allow_duplicates=False)②插入新列5.2.3DataFrame5.2Pandas數(shù)據(jù)結(jié)構(gòu)

將學(xué)生成績單使用insert()插入一列性別,代碼如下行號代碼行1importpandasaspd2#創(chuàng)建學(xué)生成績單3data=[{'姓名':'張明','年齡':14,'分?jǐn)?shù)':88},{'姓名':'李麗','年齡':13,'分?jǐn)?shù)':92},{'姓名':'王強(qiáng)','年齡':14,'分?jǐn)?shù)':95}]4df=pd.DataFrame(data)5#在第二列位置插入新列'性別',值為['男','女','男']6df.insert(1,'性別',['男','女','男'])7print(df)③刪除數(shù)據(jù)5.2.3DataFrame5.2Pandas數(shù)據(jù)結(jié)構(gòu)DataFrame的基本操作2

drop()用于刪除DataFrame中的行或列,語法如下:df.drop(labels=None,axis=0,index=None,columns=None,level=None,inplace=False,errors='raise')③刪除數(shù)據(jù)5.2.3DataFrame5.2Pandas數(shù)據(jù)結(jié)構(gòu)

在學(xué)生成績單中進(jìn)行刪除行或列,代碼如下行號代碼行1importpandasaspd2#創(chuàng)建學(xué)生成績單3data=[{'姓名':'張明','年齡':14,'分?jǐn)?shù)':88},{'姓名':'李麗','年齡':13,'分?jǐn)?shù)':92},{'姓名':'王強(qiáng)','年齡':14,'分?jǐn)?shù)':95}]4df=pd.DataFrame(data)5#刪除名為'年齡'的列6df.drop(columns='年齡',inplace=True)7print(df)8#刪除索引為1的行9df.drop(index=1,inplace=True)10print(df)④查看數(shù)據(jù)5.2.3DataFrame5.2Pandas數(shù)據(jù)結(jié)構(gòu)DataFrame的基本操作2

head()用于查看DataFrame的前幾行數(shù)據(jù),默認(rèn)顯示前5行。tail()用于查看DataFrame的后幾行數(shù)據(jù),默認(rèn)顯示最后5行。語法如下:df.head(n=5)df.tail(n=5)④查看數(shù)據(jù)5.2.3DataFrame5.2Pandas數(shù)據(jù)結(jié)構(gòu)

在學(xué)生成績單中查看數(shù)據(jù),代碼如下行號代碼行1importpandasaspd2#上面創(chuàng)建的學(xué)生成績單3data=[{'姓名':'張明','年齡':14,'分?jǐn)?shù)':88},{'姓名':'李麗','年齡':13,'分?jǐn)?shù)':92},{'姓名':'王強(qiáng)','年齡':14,'分?jǐn)?shù)':95}]4df=pd.DataFrame(data)5#使用head()方法查看前兩行數(shù)據(jù)6print(df.head(2))7#使用tail()方法查看后兩行數(shù)據(jù)8print(df.tail(2))5.3Pandas函數(shù)調(diào)用5.3.1數(shù)據(jù)清洗5.3Pandas函數(shù)調(diào)用

數(shù)據(jù)清洗是數(shù)據(jù)分析過程中的一個關(guān)鍵步驟,它涉及到從原始數(shù)據(jù)中修正或刪除錯誤、不完整、不準(zhǔn)確或無關(guān)緊要的部分。在許多實際應(yīng)用中,數(shù)據(jù)往往是不完美的,可能包含許多問題,如重復(fù)數(shù)據(jù)、缺失值等。進(jìn)行有效的數(shù)據(jù)清洗可以確保數(shù)據(jù)分析或模型訓(xùn)練的質(zhì)量和準(zhǔn)確性。重復(fù)值處理1

重復(fù)值指的是在一個給定的集合、列表、數(shù)組或數(shù)據(jù)結(jié)構(gòu)中存在的相同元素或值。Pandas提供了兩個專門處理重復(fù)值的函數(shù),分別是5.3.1數(shù)據(jù)清洗5.3Pandas函數(shù)調(diào)用查找重復(fù)項:DataFrame.duplicated(subset=None,keep='first')刪除重復(fù)項:DataFrame.drop_duplicates(subset=None,keep='first',inplace=False)重復(fù)值處理15.3.1數(shù)據(jù)清洗5.3Pandas函數(shù)調(diào)用①檢測重復(fù)值

使用duplicated()函數(shù),檢測數(shù)據(jù)中的重復(fù)值。該函數(shù)返回一個布爾序列、重復(fù)值,除了首次出現(xiàn)外,其余均被標(biāo)記為True。5.3.1數(shù)據(jù)清洗5.3Pandas函數(shù)調(diào)用①檢測重復(fù)值

假設(shè)有一個客戶交易記錄的DataFrame,其中包含客戶ID、交易日期、交易金額等字段。使用duplicated()函數(shù)找出并處理這些記錄中的重復(fù)值。代碼如例5-31所示。行號代碼行1importpandasaspd2#創(chuàng)建一個客戶交易記錄的DataFrame3df=pd.DataFrame({4'客戶id':[101,102,101,103,102,101],5'交易日期':['2023-01-01','2023-01-02','2023-01-01','2023-01-03','2023-01-02','2023-01-01'],6'交易金額':[100,200,50,300,150,50]7})8print("原始交易記錄:")9print(df)10#檢測重復(fù)的交易記錄11duplicates=df.duplicated()12print("\n重復(fù)的交易記錄:")13print(duplicates)5.3.1數(shù)據(jù)清洗5.3Pandas函數(shù)調(diào)用①檢測重復(fù)值

如果我們只關(guān)心客戶ID和交易日期來確定重復(fù)(即同一客戶在同一天有多筆相同金額的交易),我們可以使用subset參數(shù),代碼如下所示:行號代碼行14#根據(jù)客戶ID和交易日期檢測重復(fù)的交易記錄15duplicates_subset=df.duplicated(subset=['客戶id','交易日期'])16print("\n根據(jù)客戶ID、交易日期和交易金額檢測重復(fù)的交易記錄:")17print(duplicates_subset)缺失值處理25.3.1數(shù)據(jù)清洗5.3Pandas函數(shù)調(diào)用

缺失值是指在數(shù)據(jù)集中某些數(shù)據(jù)屬性缺少值或信息的現(xiàn)象。缺失值會對數(shù)據(jù)分析造成困擾,Pandas提供了多種功能來處理缺失值,包括刪除含有缺失值的行或列、填充缺失值以及檢測缺失值等。5.3.1數(shù)據(jù)清洗5.3Pandas函數(shù)調(diào)用①檢測缺失值

在缺失值處理過程中,首先我們需要識別數(shù)據(jù)中的缺失值,缺失值通常用NaN(NotaNumber)表示。用來檢測缺失值的函數(shù)包括:isnull()和notnull()函數(shù)。isnull()函數(shù)常用方法方法說明df.isnull()查看缺失值位置df.isnull().any()判斷某一列是否有缺失值df.isnull().sum()統(tǒng)計每列缺失值數(shù)量df.isnull().sum().sum()統(tǒng)計DataFrame中缺失值合計數(shù)Series.value_counts()統(tǒng)計Series中不同元素出現(xiàn)的次數(shù),在DataFrame中使用時,需要指定對哪一列或行使用5.3.1數(shù)據(jù)清洗5.3Pandas函數(shù)調(diào)用①檢測缺失值

創(chuàng)建一個包含缺失值的DataFrame,使用isnull()檢測缺失值,代碼如例5-33所示:行號代碼行1importpandasaspd2#創(chuàng)建一個包含缺失值的DataFrame3df=pd.DataFrame({4'A':[1,2,None,4],5'B':[5,None,None,8],6'C':[9,10,11,None]7})8#使用isnull()檢測缺失值9is_null=df.isnull()10print(is_null)5.3.1數(shù)據(jù)清洗5.3Pandas函數(shù)調(diào)用①檢測缺失值

notnull()函數(shù)是isnull()的反函數(shù),用于檢測數(shù)據(jù)中的非缺失值,返回標(biāo)識非缺失值位置的布爾對象。接例5-33,檢測數(shù)據(jù)中的非缺失值,代碼及運(yùn)行結(jié)果如下所示。行號代碼行11#使用notnull()檢測非缺失值12non_is_null=df.notnull()13print(non_is_null)5.3.1數(shù)據(jù)清洗5.3Pandas函數(shù)調(diào)用②刪除含有缺失值的行或列

如果DataFrame中的任何一行或列含有至少一個缺失值,就可以使用dropna()函數(shù)將其刪除,它會返回一個新的DataFrame或Series,其中不包含任何含有NaN(NotaNumber,即缺失值)的行或列。語法結(jié)構(gòu)如下所示:DataFrame.dropna(axis=0,how='any',thresh=None,subset=None,inplace=False)5.3.1數(shù)據(jù)清洗5.3Pandas函數(shù)調(diào)用②刪除含有缺失值的行或列

dropna()函數(shù)常用參數(shù)如表5-8所示參數(shù)說明axis默認(rèn)axis=0,表示刪除包含缺失值的行,axis=1,表示刪除包含缺失值的列how默認(rèn)how=’any’,表示刪除含有缺失值的所有行或列,how=‘a(chǎn)ll’,表示刪除全部缺失值的行或列thresh:int可選。要求行或列中非空(非NaN)元素的最小數(shù)量。如果未達(dá)到此閾值,則刪除該行或列subset指定要在其中查找缺失值的列,對特定列進(jìn)行缺失值刪除inplace默認(rèn)為False,表示不修改原始DataFrame,而是返回一個新的DataFrame。如果設(shè)置為True,則直接在原始DataFrame上進(jìn)行修改,不返回新的DataFrame5.3.1數(shù)據(jù)清洗5.3Pandas函數(shù)調(diào)用行號代碼行1importpandasaspd2#創(chuàng)建一個包含缺失值的DataFrame3df=pd.DataFrame({4'A':[1,2,None,4],5'B':[5,None,None,8],6'C':[9,10,11,None]7})8#刪除包含至少一個缺失值的行9rows=df.dropna()10#刪除包含至少一個缺失值的列11columns=df.dropna(axis=1)12#僅當(dāng)行中全部都是缺失值時才刪除該行13all_rows=df.dropna(how='all')14#保留至少有2個非空元素的行15thresh=df.dropna(thresh=2)16print('刪除包含至少一個缺失值的行\(zhòng)n',rows)17print('刪除包含至少一個缺失值的列\(zhòng)n',columns)18print('僅當(dāng)行中全部都是缺失值時才刪除該行\(zhòng)n',all_rows)19print('保留至少有2個非空元素的行\(zhòng)n',thresh)5.3.1數(shù)據(jù)清洗5.3Pandas函數(shù)調(diào)用③填充缺失值

填充缺失值可以用fillna()函數(shù)來實現(xiàn)

DataFrame.fillna(value=None,method=None,axis=None,inplace=False,limit=None,downcast=None)參數(shù)說明value用于填充的值,可以是數(shù)值、字符串、變量、字典、series、DataFrame,不能使用列表method填充方法{‘backfill’,‘bfill’,‘pad’,‘ffill’,‘None’},pad/ffill表示用前一個非缺失值填充,backfill/bfill表示用后一個非缺失值填充,默認(rèn)為Noneaxis填充缺失值所沿的軸,默認(rèn)為Noneinplace默認(rèn)為False,True表示直接在原數(shù)據(jù)上更改limit限制填充次數(shù)5.3.1數(shù)據(jù)清洗5.3Pandas函數(shù)調(diào)用以例5-33創(chuàng)建的DataFrame為例,用fillna()函數(shù)填充缺失值,代碼例5-35所示。行號代碼行1importpandasaspd2df=pd.DataFrame({3'A':[1,2,None,4],4'B':[5,None,None,8],5'C':[9,10,11,None]6})7#使用0填充所有的NaN值8df_filled=df.fillna(0)9print(df_filled)5.3.1數(shù)據(jù)清洗5.3Pandas函數(shù)調(diào)用④數(shù)據(jù)轉(zhuǎn)換

數(shù)據(jù)轉(zhuǎn)換指的是將數(shù)據(jù)從一種格式、結(jié)構(gòu)或類型轉(zhuǎn)換為另一種,以滿足特定的分析、處理或存儲需求。在Pandas中,使用astype()函數(shù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換,語法結(jié)構(gòu)如下所示:

DataFrame.astype(

dtype

,copy=True

,errors='raise'

)dtype是數(shù)據(jù)類型copy是布爾值,默認(rèn)為True,表示返回一個副本針對數(shù)據(jù)類型轉(zhuǎn)換無效引發(fā)異常的處理,默認(rèn)為“raise”,表示允許引發(fā)異常5.3.1數(shù)據(jù)清洗5.3Pandas函數(shù)調(diào)用使用astype()函數(shù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換,代碼如例5-36所示。行號代碼行1importpandasaspd2importnumpyasnp3df=pd.DataFrame({4'A':[1,2,0,4],5'B':[5,-1,-1,8],6'C':[9,10,11,99]7})8print(df)9df_astype=df.astype('float')10print(df_astype)5.3.2數(shù)據(jù)連接5.3Pandas函數(shù)調(diào)用

數(shù)據(jù)連接是數(shù)據(jù)處理和分析中的關(guān)鍵步驟,它指的是將不同來源、格式或結(jié)構(gòu)的數(shù)據(jù)集合并成一個統(tǒng)一的數(shù)據(jù)集,以便于進(jìn)行更深入的分析和挖掘。主要通過Pandas庫提供的concat()、merge()等函數(shù)來實現(xiàn),它們可以滿足不同的數(shù)據(jù)連接需求。concat()函數(shù)15.3.2數(shù)據(jù)連接5.3Pandas函數(shù)調(diào)用

concat()函數(shù)用于沿特定軸連接兩個或兩個以上的DataFrame,既可以實現(xiàn)橫向合并,也可以實現(xiàn)縱向合并,并且行列索引均可重復(fù)。pandas.concat(objs,axis=0,join='outer'

,

ignore_index=False

,

sort=False)連接對象軸向,0代表縱向拼接,1代表橫向拼接連接方式,inner(內(nèi)連接)和outer(外連接)是否重建索引將合并的數(shù)據(jù)進(jìn)行排序,默認(rèn)為True5.3.2數(shù)據(jù)連接5.3Pandas函數(shù)調(diào)用①橫向合并

橫向合并是將多個DataFrame或Series對象沿著列方向連接在一起。使用concat()函數(shù)進(jìn)行橫向合并時,需要將axis參數(shù)設(shè)置為1,代碼如例5-37所示。行號代碼行1importpandasaspd2#初始化兩個DataFrame對象3df1=pd.DataFrame({'A':[1,2],'B':[3,4]})4df2=pd.DataFrame({'C':[5,6],'D':[7,8]})5#橫向合并兩個DataFrame對象6result=pd.concat([df1,df2],axis=1)7#輸出合并后的DataFrame8print(df1)9print(df2)10print(result)5.3.2數(shù)據(jù)連接5.3Pandas函數(shù)調(diào)用①橫向合并

運(yùn)行結(jié)果:5.3.2數(shù)據(jù)連接5.3Pandas函數(shù)調(diào)用②縱向合并

縱向合并是將多個DataFrame或Series對象沿著行方向連接在一起。默認(rèn)情況下,concat()函數(shù)就是按行進(jìn)行縱向合并的,代碼如例5-38所示。行號代碼行1importpandasaspd2#初始化兩個DataFrame對象3df1=pd.DataFrame({'A':[1,2],'B':[3,4]})4df2=pd.DataFr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論