




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章NumPy基礎(chǔ)與應(yīng)用主講人:***13-10月-23Python數(shù)據(jù)分析與數(shù)據(jù)挖掘目錄contents數(shù)組基礎(chǔ)0102數(shù)組的相關(guān)操作03數(shù)組讀寫(xiě)數(shù)組基礎(chǔ)015.1Numpy簡(jiǎn)介NumPy是Python的一個(gè)基礎(chǔ)科學(xué)計(jì)算包,是許多高級(jí)的第三方科學(xué)計(jì)算的模塊,如:Matplotlib、Pandas等,都是基于NumPy所構(gòu)建的。它包含以下幾個(gè)特點(diǎn):強(qiáng)大的多維數(shù)組對(duì)象;精細(xì)而復(fù)雜的功能;用于集成C/C++和Fortran代碼的工具;實(shí)用的線(xiàn)性代數(shù),傅里葉變換和隨機(jī)數(shù)功能。對(duì)于許多用戶(hù),尤其是Windows用戶(hù),學(xué)習(xí)Python的常用工具為Anaconda,其中包括所有數(shù)據(jù)分析的關(guān)鍵包,不需要再次安裝,但可以在命令行中使用pip更新:
pipinstallnumpy–U
可以在/doc/stable/上查閱NumPy的使用文檔。5.2NumPy數(shù)組基礎(chǔ)數(shù)組是NumPy中的核心類(lèi)型,全稱(chēng)為N維數(shù)組(N-dimensionalArray,ndarray),整個(gè)NumPy模塊都是圍繞數(shù)組來(lái)構(gòu)建的,它是一個(gè)固定大小和形狀的大數(shù)據(jù)集容器,該對(duì)象由兩部分組成:(1) 實(shí)際的數(shù)據(jù);(2) 描述這些數(shù)據(jù)的元數(shù)據(jù);大部分的數(shù)組操作僅僅修改元數(shù)據(jù)的部分,而不改變底層的實(shí)際數(shù)據(jù)。
NumPy.array和標(biāo)準(zhǔn)的Python庫(kù)中的Array.array是不一樣的,標(biāo)準(zhǔn)的Python庫(kù)中的Array.array只能處理一維數(shù)組,且所有元素的類(lèi)型必須是一致的,支持的數(shù)據(jù)類(lèi)型有整型、浮點(diǎn)型以及復(fù)數(shù)型,但這些類(lèi)型不能夠滿(mǎn)足科學(xué)計(jì)算的需求,因此NumPy中添加了許多其他的數(shù)據(jù)類(lèi)型,如bool、int、int64、float32、complex64等。
同時(shí),NumPy數(shù)組有許多特有的屬性。(見(jiàn)表5-1)5.2.1數(shù)組的屬性屬性說(shuō)明.ndim秩,即軸的數(shù)量或維度的數(shù)量.shapendarray對(duì)象的尺度,對(duì)于矩陣,n行m列.sizendarray對(duì)象元素的個(gè)數(shù),相當(dāng)于.shape中n*m的值.dtypendarray對(duì)象的元素類(lèi)型.itemsizendarray對(duì)象中每個(gè)元素的大小,以字節(jié)為單位.nbytesndarray對(duì)象中元素連續(xù)內(nèi)存的大小表5-1NumPy數(shù)組常見(jiàn)屬性列表5.2.1數(shù)組的屬性-實(shí)例importnumpyasnparray=np.array([[1,2,3],[4,5,6]])#定義數(shù)組print(array.ndim)#查看數(shù)組的秩print(array.shape)#查看數(shù)組的形狀print(array.size)#查看數(shù)組元素個(gè)數(shù)print(array.dtype)#查看數(shù)組元素類(lèi)型print(array.itemsize)#查看元素所占字節(jié)print(array.nbytes)#數(shù)組所占內(nèi)存大小運(yùn)行結(jié)果:2(2,3)6int32424[例5-1]構(gòu)建一個(gè)二維數(shù)組arr,并查看數(shù)組的屬性特點(diǎn)。5.2.1數(shù)組的屬性-實(shí)例[思考題]構(gòu)建一個(gè)二維數(shù)組arr,請(qǐng)寫(xiě)出數(shù)組屬性的輸出結(jié)果。importnumpyasnp#定義數(shù)組array=arr=np.array([[iforiinrange(5)],[iforiinrange(5,10)]])print(array.ndim)#查看數(shù)組的秩print(array.shape)#查看數(shù)組的形狀print(array.size)#查看數(shù)組元素個(gè)數(shù)print(array.dtype)#查看數(shù)組元素類(lèi)型print(array.itemsize)#查看元素所占字節(jié)print(array.nbytes)#數(shù)組所占內(nèi)存大小運(yùn)行結(jié)果:2(2,5)10int324405.2.2創(chuàng)建數(shù)組在使用數(shù)組前,必須首先導(dǎo)入NumPy模塊。導(dǎo)入格式:importnumpyasnp1、利用np.array()函數(shù)生成數(shù)組利用np.array()函數(shù)來(lái)創(chuàng)建,函數(shù)的參數(shù)可以是元組、列表,也可是另一個(gè)數(shù)組。語(yǔ)法格式為:X=np.array(list/tuple)或者X=np.array(list/tuple,dtype=np.dtype)注:當(dāng)np.array()不指定dtype時(shí),NumPy將根據(jù)數(shù)據(jù)情況自動(dòng)匹配一個(gè)dtype類(lèi)型。[例5-2]以列表創(chuàng)建:a=np.array([1,2,3,4]) d=np.array([[1,2,3],[4,5,6]])
[例5-3]以元組創(chuàng)建:b=np.array((1,2,3,4),dtype=np.float32)以列表+元組創(chuàng)建:c=np.array([[1,2],[3,4],(0.1,0.8)])注:若數(shù)值類(lèi)型不同時(shí),會(huì)將其合并為類(lèi)型范圍較大的一種5.2.2創(chuàng)建數(shù)組2、利用內(nèi)置函數(shù)產(chǎn)生特定形式的數(shù)組函數(shù)說(shuō)明np.arange(n)類(lèi)似range()函數(shù),返回ndarray類(lèi)型,元素從0到n-1np.ones(shape)根據(jù)shape生成一個(gè)全1數(shù)組,shape是元組類(lèi)型,默認(rèn)浮點(diǎn)型np.zeros(shape)根據(jù)shape生成一個(gè)全0數(shù)組,shape是元組類(lèi)型,默認(rèn)浮點(diǎn)型np.full(shape,val)根據(jù)shape生成一個(gè)數(shù)組,每個(gè)元素值都是valnp.eye(n)創(chuàng)建一個(gè)正方的n*n單位矩陣,對(duì)角線(xiàn)為1,其他為0表5-2NumPy常見(jiàn)內(nèi)置函數(shù)2、利用內(nèi)置函數(shù)產(chǎn)生特定形式的數(shù)組1)
np.zeros()函數(shù)、np.ones()函數(shù)和np.eye()函數(shù):
語(yǔ)法:X=np.xxx(shape,dtype=float)注:np.zeros()函數(shù)是生成一個(gè)數(shù)值全為零的數(shù)組,其中的行列數(shù)可以自定義。數(shù)值類(lèi)型默認(rèn)為浮點(diǎn)型。np.ones()函數(shù)用法與np.zeros()函數(shù)完全相同,只有數(shù)值不同。[例5-4]使用np.zeros()函數(shù)創(chuàng)建全0數(shù)組。5.2.2創(chuàng)建數(shù)組5.2.2創(chuàng)建數(shù)組2、利用內(nèi)置函數(shù)產(chǎn)生特定形式的數(shù)組2)np.arange()函數(shù)
語(yǔ)法:X=np.arange([start,]stop[,step,],dtype=None)注:np.arange()函數(shù)可以產(chǎn)生一個(gè)等距數(shù)組,其中:[]內(nèi)的內(nèi)容可省略,start的默認(rèn)值為0,step的默認(rèn)值為1。故而,參數(shù)個(gè)數(shù)可以為1個(gè)、2個(gè)或3個(gè)。
當(dāng)只含一個(gè)參數(shù)時(shí),即只有stop參數(shù),此時(shí)將生成一個(gè)從0到stop-1,步長(zhǎng)為1的整數(shù)數(shù)組?!纠?-5-Part1】當(dāng)含2個(gè)參數(shù)時(shí),即指定起始位置,生成一個(gè)從start到stop-1,步長(zhǎng)為1的整數(shù)數(shù)組?!纠?-5-Part2】當(dāng)含3個(gè)參數(shù)時(shí),即指定起始位置與步長(zhǎng),生成一個(gè)從start到stop-1,步長(zhǎng)為定值的數(shù)組,指定的步長(zhǎng)可以是浮點(diǎn)型?!纠?-5-Part3】[例5-5]使用np.arange創(chuàng)建數(shù)組,分別帶有1個(gè)參數(shù)、2個(gè)參數(shù)和3個(gè)參數(shù)。首先創(chuàng)建只帶一個(gè)參數(shù)的,代碼及輸出結(jié)果如下:【例5-5-Part1】【例5-5-Part2】【例5-5-Part3】5.2.2創(chuàng)建數(shù)組2、利用內(nèi)置函數(shù)產(chǎn)生特定形式的數(shù)組3)np.linspace()函數(shù):
語(yǔ)法:np.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)注:Numpy中的linspace函數(shù)可以用來(lái)創(chuàng)建由等差數(shù)列構(gòu)成的一維數(shù)組。相關(guān)的參數(shù)以及說(shuō)明見(jiàn)下一張PPT表格。5.2.2創(chuàng)建數(shù)組2、利用內(nèi)置函數(shù)產(chǎn)生特定形式的數(shù)組3)np.linspace()函數(shù):表5-3linspace函數(shù)的參數(shù)及說(shuō)明5.2.2創(chuàng)建數(shù)組[例5-6]使用linspace函數(shù)生成均勻分布的數(shù)組,代碼及輸出結(jié)果如下:2、利用內(nèi)置函數(shù)產(chǎn)生特定形式的數(shù)組3)np.linspace()函數(shù):5.2.2創(chuàng)建數(shù)組4)np.empty()函數(shù):注:np.empty()函數(shù)是生成一個(gè)指定形狀和類(lèi)型且全為空的數(shù)組,該函數(shù)只是讓系統(tǒng)分配指定大小的內(nèi)容,而并沒(méi)有初始化,里面的值是隨機(jī)的。[例5-7]使用np.empty生成一個(gè)指定形狀和類(lèi)型且全為空的數(shù)組,代碼及輸出結(jié)果如下:2、利用內(nèi)置函數(shù)產(chǎn)生特定形式的數(shù)組5.2.2創(chuàng)建數(shù)組3、生成隨機(jī)數(shù)組1)
numpy.random.rand(d0,d1,...,dn)函數(shù)注:創(chuàng)建給定形狀的數(shù)組,并使用[0.0,1.0)上均勻分布的隨機(jī)浮點(diǎn)數(shù)填充該數(shù)組。當(dāng)函數(shù)沒(méi)有參數(shù)時(shí),返回一個(gè)隨機(jī)浮點(diǎn)數(shù),當(dāng)函數(shù)有一個(gè)參數(shù)時(shí),返回該參數(shù)長(zhǎng)度大小的一維隨機(jī)浮點(diǎn)數(shù)數(shù)組,當(dāng)函數(shù)有兩個(gè)及以上參數(shù)時(shí),則返回對(duì)應(yīng)維度的數(shù)組。2)numpy.random.randint(low,high=None,size=None,dtype=int)函數(shù)注:返回隨機(jī)整數(shù)數(shù)組,數(shù)據(jù)值位于半開(kāi)區(qū)間[low,high)??梢杂胹ize設(shè)置數(shù)組的形狀,例如,若size為(m,n,k),則繪制m*n*k形狀的樣本。size默認(rèn)值為“None”,在這種情況下,將返回單個(gè)值。5.2.2創(chuàng)建數(shù)組3、生成隨機(jī)數(shù)組3)numpy.random.randn(d0,d1,...,dn)函數(shù)注:返回一個(gè)或一組服從標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)樣本值。當(dāng)函數(shù)沒(méi)有參數(shù)時(shí),則返回一個(gè)浮點(diǎn)數(shù),當(dāng)函數(shù)有一個(gè)參數(shù)時(shí),則返回秩為1的數(shù)組,不能表示向量和矩陣,當(dāng)函數(shù)有兩個(gè)及以上參數(shù)時(shí),則返回對(duì)應(yīng)維度的數(shù)組,能表示向量或矩陣。此外,np.random.standard_normal()函數(shù)與np.random.randn()類(lèi)似,但是np.random.standard_normal()的輸入?yún)?shù)為元組(tuple)。5.2.2創(chuàng)建數(shù)組3、生成隨機(jī)數(shù)組4)
numpy.random.shuffle(x)函數(shù)注:類(lèi)似洗牌操作,修改參數(shù)x。參數(shù)x為要洗牌的數(shù)組、列表或可變序列。5)numpy.random.permutation(x)函數(shù)注:隨機(jī)排列一個(gè)序列,或返回一個(gè)排列的范圍。如果x是一個(gè)多維數(shù)組,則它只會(huì)沿著其第一個(gè)索引移動(dòng)。5.2.2創(chuàng)建數(shù)組3、生成隨機(jī)數(shù)組[例5-8]使用random模塊生成隨機(jī)數(shù)組,代碼及輸出結(jié)果如下:5.2.3數(shù)組的數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型說(shuō)明bool布爾類(lèi)型,true或falseintc與C語(yǔ)言中的int類(lèi)型一致,一般是int32或int64intp用于索引的整數(shù),int32或int64int8字節(jié)長(zhǎng)度的整數(shù),取值:[‐128,127]int1616位長(zhǎng)度的整數(shù),取值:[‐32768,32767]int32int64uint88位無(wú)符號(hào)整數(shù),取值:[0,255]uint1616位無(wú)符號(hào)整數(shù),取值:[0,65535]uint32uint64float1616位半精度浮點(diǎn)數(shù):1位符號(hào)位,5位指數(shù),10位尾數(shù)float3232位半精度浮點(diǎn)數(shù):1位符號(hào)位,8位指數(shù),23位尾數(shù)float6464位半精度浮點(diǎn)數(shù):1位符號(hào)位,11位指數(shù),52位尾數(shù)complex64復(fù)數(shù)類(lèi)型,實(shí)部和虛部都是32位浮點(diǎn)數(shù)complex128復(fù)數(shù)類(lèi)型,實(shí)部和虛部都是64位浮點(diǎn)數(shù)表5-4數(shù)組的數(shù)據(jù)類(lèi)型5.2.3數(shù)組的數(shù)值類(lèi)型[例5-9]創(chuàng)建整型和浮點(diǎn)型的混合類(lèi)型數(shù)組,NumPy會(huì)將其統(tǒng)一改為浮點(diǎn)型。
當(dāng)使用元組或列表時(shí)作為創(chuàng)建數(shù)組的參數(shù)時(shí),若數(shù)據(jù)類(lèi)型不同,會(huì)將其類(lèi)型統(tǒng)一為類(lèi)型范圍較大的一種,即當(dāng)傳入的數(shù)據(jù)有多種類(lèi)型時(shí),NumPy會(huì)自動(dòng)進(jìn)行判斷,將數(shù)組轉(zhuǎn)化為最為通用的類(lèi)型。5.2.4數(shù)組的迭代一維數(shù)組:迭代返回對(duì)應(yīng)數(shù)組中的每一個(gè)元素。多維數(shù)組:迭代返回值是一個(gè)維度減一的數(shù)組。多維數(shù)組:可以進(jìn)行列迭代和逐個(gè)元素迭代。行迭代[例5-10]一維和多維數(shù)組迭代。[例5-11]多維數(shù)組的列迭代和逐個(gè)元素迭代。列迭代逐個(gè)迭代5.2.5數(shù)組的索引和切片1、一維數(shù)組的索引
一維數(shù)組的索引與列表類(lèi)似,不僅支持單個(gè)元素的索引,還支持負(fù)數(shù)索引與切片,負(fù)索引或切片后得到的結(jié)果仍是一個(gè)數(shù)組,可以進(jìn)行數(shù)組的相關(guān)操作。[例5-12]一維數(shù)組索引。2、多維數(shù)組的索引---多重索引單個(gè)元素:array[行數(shù)][列數(shù)]某一行元素:array[行數(shù)]或array[行數(shù),:]某一列元素:array[:,列數(shù)]某幾行和某幾列:[起始行:終止行,起始列:終止列][例5-13]多維數(shù)組索引。5.2.5數(shù)組的索引和切片1、合并 在水平方向上,一般采用hstack()函數(shù)實(shí)現(xiàn)兩個(gè)數(shù)組的合并。 具體語(yǔ)法為:np.hstack((a,b))。 此外,concatenate(axis=1)函數(shù)和column_stack()函數(shù)可以實(shí)現(xiàn)類(lèi)似的效果。[例5-14]數(shù)組水平方向上的合并。5.2.6數(shù)組的合并和拆分1、合并
在豎向方向上,一般采用vstack()函數(shù)實(shí)現(xiàn)兩個(gè)數(shù)組的合并。
具體語(yǔ)法為:np.vstack((a,b))。
當(dāng)參數(shù)axis設(shè)置為0時(shí),concatenate()函數(shù)可以得到同樣的結(jié)果。row_stack()函數(shù)亦如是。除此之外,還有一種是深向合并的操作,它是沿著第三個(gè)坐標(biāo)軸的方向來(lái)合并,使用到的函數(shù)是dstack()。[例5-15]數(shù)組豎向及深向上的合并。5.2.6數(shù)組的合并和拆分2、拆分
水平拆分:對(duì)于一個(gè)n*m的數(shù)組,可以沿著水平方向?qū)⑵洳鸱譃閙部分,并且各部分的大小和形狀完全相同:hsplit()、split(axis=1)
豎向拆分:對(duì)于一個(gè)n*m的數(shù)組,也可以沿著豎向(按行)將其拆分為n部分,并且各部分的大小和形狀完全相同:vsplit()、split(axis=0)
深向拆分:對(duì)于一個(gè)n*m的數(shù)組,也可以沿著深向?qū)⑵洳鸱譃閚部分:dsplit()5.2.6數(shù)組的合并和拆分[例5-16]數(shù)組的拆分。5.2.6數(shù)組的合并和拆分?jǐn)?shù)組的相關(guān)操作025.3.1統(tǒng)計(jì)相關(guān)操作NumPy提供了很多統(tǒng)計(jì)函數(shù),可以支持對(duì)數(shù)組的多種統(tǒng)計(jì)操作。例如,從數(shù)組中查找最小元素,最大元素,計(jì)算均值、標(biāo)準(zhǔn)差和方差等。
常見(jiàn)的統(tǒng)計(jì)函數(shù)及說(shuō)明見(jiàn)表5-5。函數(shù)說(shuō)明.sum()數(shù)組求和,默認(rèn)對(duì)所有元素求和.prod()數(shù)組求積,默認(rèn)對(duì)所有元素求積.max()和.min()求數(shù)組元素中的最大值或者最小值.argmax()和.argmin()求數(shù)組元素中的最大值或者最小值的位置.mean()求數(shù)組所有元素的均值.std()和.var()求數(shù)組元素中的標(biāo)準(zhǔn)差或方差表5-5數(shù)組的統(tǒng)計(jì)操作[例5-17]數(shù)組統(tǒng)計(jì)相關(guān)操作實(shí)例。5.3.1統(tǒng)計(jì)相關(guān)操作1、修改數(shù)組形狀:.shape屬性[例5-18]使用.shape屬性修改數(shù)組形狀。5.3.2形狀相關(guān)操作5.3.2形狀相關(guān)操作2、不改變數(shù)組自身形狀的方法:reshape()方法 reshape()方法也可以實(shí)現(xiàn)類(lèi)似.shape屬性的效果,但是它不改變?cè)瓟?shù)組的形狀,并返回一個(gè)新的數(shù)組。注意:形狀參數(shù)必須與數(shù)組大小一致,否之會(huì)拋出異常。 reshape()方法可以接受一個(gè)“-1”作為參數(shù),當(dāng)某一維度是-1時(shí),NumPy會(huì)自動(dòng)根據(jù)其他維度來(lái)計(jì)算這一維度的大小。[例5-19]使用.reshape()方法不改變?cè)瓟?shù)組形狀。[例5-20]使用“-1”作為.reshape()參數(shù)。3、改變數(shù)組自身形狀的方法:.resize()方法.resize()方法的作用與reshape()方法的功能一致,但改變?cè)瓉?lái)數(shù)組的形狀。它的原理是首先將原來(lái)數(shù)組轉(zhuǎn)變?yōu)橐痪S數(shù)組,再判斷元素的個(gè)數(shù),若缺失,則缺失元素以0補(bǔ)全;若過(guò)滿(mǎn),則只截取所需元素,從而實(shí)現(xiàn)對(duì)數(shù)組形狀的修改。注意:.resize()方法不支持-1參數(shù)。[例5-21]使用.resize()方法改變數(shù)組自身形狀。5.3.2形狀相關(guān)操作4、數(shù)組的轉(zhuǎn)置:.T屬性和.transpose()方法對(duì)于數(shù)組而言,轉(zhuǎn)置可以通過(guò).T屬性和.transpose()方法實(shí)現(xiàn)。一般情況下,這兩種方法是等價(jià)的。對(duì)一維數(shù)組而言,轉(zhuǎn)置返回它的本身;對(duì)于二維數(shù)組而言,轉(zhuǎn)置相當(dāng)于將其行列互換;對(duì)于多維數(shù)組而言,轉(zhuǎn)置是將所有的維度反向,原來(lái)的第一維變?yōu)樽詈笠痪S,原來(lái)的最后一維變成第一維。[例5-22]數(shù)組的轉(zhuǎn)置。5.3.2形狀相關(guān)操作5、數(shù)組的降維:.flat屬性、.flatten()方法和.revel()方法數(shù)組的降維是針對(duì)多維數(shù)組而言的,可以利用.flat屬性得到數(shù)組中的一個(gè)一維引用數(shù)組,同時(shí),此屬性支持修改對(duì)應(yīng)數(shù)值,從而使原數(shù)組的對(duì)應(yīng)位置有相應(yīng)的改變。.flatten()方法和.revel()方法也可以實(shí)現(xiàn)將數(shù)組返回一維化的結(jié)果,但是.flatten()方法返回的是原數(shù)組的一個(gè)復(fù)制,修改它對(duì)原數(shù)組不產(chǎn)生影響。.revel()方法是返回引用,只有在必要時(shí)返回復(fù)制。[例5-23]數(shù)組的降維。5.3.2形狀相關(guān)操作5.3.3四則運(yùn)算&點(diǎn)乘&比較操作[例5-24]數(shù)組的四則運(yùn)算、點(diǎn)乘與比較操作。數(shù)組與數(shù)字之間的四則運(yùn)算,規(guī)則是數(shù)組元素分別對(duì)應(yīng)進(jìn)行相應(yīng)運(yùn)算。[例5-24]數(shù)組的四則運(yùn)算、點(diǎn)乘與比較操作。數(shù)組與數(shù)組之間也可以進(jìn)行四則運(yùn)算,前提是參與運(yùn)算的數(shù)組需有相同的行列。運(yùn)算規(guī)則是按位運(yùn)算,對(duì)應(yīng)位置進(jìn)行運(yùn)算。此外,數(shù)組還支持冪運(yùn)算、取余和取整運(yùn)算。5.3.3四則運(yùn)算&點(diǎn)乘&比較操作[例5-24]數(shù)組的四則運(yùn)算、點(diǎn)乘與比較操作。在數(shù)學(xué)上,二維數(shù)組可以看成矩陣,一維數(shù)組可以看成向量,它們還支持點(diǎn)乘運(yùn)算,用.dot()函數(shù)實(shí)現(xiàn)。5.3.3四則運(yùn)算&點(diǎn)乘&比較操作[例5-24]數(shù)組的四則運(yùn)算、點(diǎn)乘與比較操作。數(shù)組還支持其他運(yùn)算,例如,比較和邏輯操作。在比較操作中,數(shù)組可以與一個(gè)數(shù)進(jìn)行比較,會(huì)返回一個(gè)布爾型的數(shù)組;數(shù)組與數(shù)組之間也可以進(jìn)行比較,返回一個(gè)布爾型數(shù)組。5.3.3四則運(yùn)算&點(diǎn)乘&比較操作數(shù)組讀寫(xiě)035.4.1數(shù)組的讀取
從文本文件中讀取數(shù)據(jù):np.loadtxt()函數(shù)。語(yǔ)法格式為:numpy.loadtxt(fname,dtype=<class'float'>,comments='#',delimiter=None,converters=None,skiprows=0,usecols=None,unpack=False,ndmin=0,encoding='bytes',max_rows=None,*,like=None)
說(shuō)明如表5-6。[例5-25]從文本文件中讀取數(shù)據(jù),讀出的數(shù)據(jù)為數(shù)組類(lèi)型。首先讀取data目錄下以空格分隔數(shù)據(jù)的test.txt文件。5.4.1數(shù)組的讀取如果文件中的數(shù)據(jù)不是空格分隔,可以設(shè)置參數(shù)delimiter指定分隔符。文件格式:1,2,3,4,5,67,8,9,10,11,12如果文件中的含有字符串的數(shù)組,可以加上一個(gè)參數(shù)值。文件格式:
namepricemysql18python205.4.1數(shù)組的讀取
如果文件中包含字符串和數(shù)值型的混合數(shù)據(jù)(如test2.txt中,有'gender','age','weight'三列數(shù)據(jù)),可以如下指定數(shù)據(jù)類(lèi)型進(jìn)行讀取。5.4.1數(shù)組的讀取將數(shù)組寫(xiě)入文件:np.savetxt(),寫(xiě)入時(shí)默認(rèn)使用科學(xué)記數(shù)法的形式保存數(shù)字。語(yǔ)法格式如下:np.savetxt(fname,X,fmt='%.18e',delimiter='',newline='\n',header='',footer='',comments='#',encoding=None)說(shuō)明如下表。存入文件數(shù)據(jù)[例5-26]數(shù)組的寫(xiě)入。首先使用默認(rèn)參數(shù),將一個(gè)二維數(shù)組寫(xiě)入文件,代碼如下:5.4.2數(shù)組的寫(xiě)入可以使用fmt參數(shù)設(shè)置數(shù)據(jù)寫(xiě)入的格式可以用delimiter參數(shù)指定分隔符存入文件數(shù)據(jù)存入文件數(shù)據(jù)5.4.2數(shù)組的寫(xiě)入本章實(shí)踐例題本章實(shí)踐例題[例5-27]數(shù)組生成實(shí)例。本例介紹了幾種常用的數(shù)組生成方法,包括生成隨機(jī)數(shù)數(shù)組、生成均勻分布的數(shù)組等。實(shí)例代碼如下:本章實(shí)踐例題[例5-27]數(shù)組生成實(shí)例。本例介紹了幾種常用的數(shù)組生成方法,包括生成隨機(jī)數(shù)數(shù)組、生成均勻分布的數(shù)組等。實(shí)例代碼如下:本章實(shí)踐例題[例5-28]數(shù)組索引及切片實(shí)例。本例介紹了如何通過(guò)索引
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人主材合同范本
- 醫(yī)院規(guī)范用工合同范本
- 與物業(yè)簽訂廣告合同范本
- 浠水購(gòu)房合同范本
- 銀行居間付款合同范本
- 修建鄉(xiāng)村公路合同范本
- 醫(yī)院日常裝飾維修合同范本
- 協(xié)調(diào)服務(wù)合同范本
- 公房買(mǎi)給個(gè)人合同范本
- 上海吊車(chē)租用合同范本
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及參考答案
- 患者轉(zhuǎn)運(yùn)意外應(yīng)急預(yù)案
- 大學(xué)生國(guó)防教育教案第四章現(xiàn)代戰(zhàn)爭(zhēng)
- 人教版初中化學(xué)實(shí)驗(yàn)?zāi)夸?總表)
- AS9100航空航天質(zhì)量管理體系-要求培訓(xùn)教材
- 第2課+古代希臘羅馬【中職專(zhuān)用】《世界歷史》(高教版2023基礎(chǔ)模塊)
- Q-GDW 11711-2017 電網(wǎng)運(yùn)行風(fēng)險(xiǎn)預(yù)警管控工作規(guī)范
- 《桃樹(shù)下的小白兔》課件
- 電工儀表與測(cè)量(第六版)中職技工電工類(lèi)專(zhuān)業(yè)全套教學(xué)課件
- 強(qiáng)調(diào)句(完整版)-高三英語(yǔ)市公開(kāi)課一等獎(jiǎng)省賽課獲獎(jiǎng)?wù)n件
- 2022年4月自考00277行政管理學(xué)試題及答案含解析
評(píng)論
0/150
提交評(píng)論