Python數(shù)據(jù)分析 課件【ch03】數(shù)組計(jì)算庫NumPy_第1頁
Python數(shù)據(jù)分析 課件【ch03】數(shù)組計(jì)算庫NumPy_第2頁
Python數(shù)據(jù)分析 課件【ch03】數(shù)組計(jì)算庫NumPy_第3頁
Python數(shù)據(jù)分析 課件【ch03】數(shù)組計(jì)算庫NumPy_第4頁
Python數(shù)據(jù)分析 課件【ch03】數(shù)組計(jì)算庫NumPy_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Python數(shù)據(jù)分析數(shù)組計(jì)算庫Numpy第三章計(jì)算機(jī)專業(yè)·任務(wù)驅(qū)動(dòng)應(yīng)用型教材01數(shù)組的創(chuàng)建數(shù)組的創(chuàng)建01數(shù)組數(shù)據(jù)類型NumPy支持的數(shù)據(jù)類型比Python內(nèi)置的類型要多,基本上可以和C語言中的數(shù)據(jù)類型對(duì)應(yīng)上,其中部分類型對(duì)應(yīng)為Python內(nèi)置的類型。表3-1列舉了常用的NumPy數(shù)據(jù)類型。數(shù)組的創(chuàng)建01數(shù)組的創(chuàng)建01數(shù)組的創(chuàng)建01NumPy的數(shù)組對(duì)象ndarray是存儲(chǔ)數(shù)據(jù)和有關(guān)如何處理數(shù)據(jù)的信息的數(shù)據(jù)類型,描述了數(shù)據(jù)以下幾個(gè)方面的內(nèi)容。數(shù)據(jù)的類型(整數(shù)、浮點(diǎn)數(shù)或Python對(duì)象)。數(shù)據(jù)的大?。ㄈ缯麛?shù)使用多少字節(jié)進(jìn)行存儲(chǔ))。數(shù)據(jù)的字節(jié)順序(小端法或大端法)。如果數(shù)據(jù)類型是結(jié)構(gòu)化類型,則描述的是字段的名稱、每個(gè)字段的數(shù)據(jù)類型和每個(gè)字段所取的內(nèi)存塊的部分。如果數(shù)據(jù)類型是子數(shù)組,則描述的是其形狀和數(shù)據(jù)類型。數(shù)組的創(chuàng)建01創(chuàng)建數(shù)組的具體方法array函數(shù)NumPy使用array函數(shù),通過直接定義數(shù)據(jù)創(chuàng)建數(shù)組,返回N維數(shù)組對(duì)象(ndarray),其調(diào)用格式如下:參數(shù)說明如下。object:數(shù)組、數(shù)組接口的任何對(duì)象,返回?cái)?shù)組的對(duì)象或任何(嵌套)序列。dtype:數(shù)據(jù)類型。copy:bool,如果copy=True(默認(rèn)值),則復(fù)制對(duì)象。數(shù)組的創(chuàng)建01array函數(shù)order:指定陣列的內(nèi)存布局,可選址為'K'(按照元素在內(nèi)存中出現(xiàn)的順序排列)、'A'(原順序)、'C'(按行)、'F'(按列)。如果object不是數(shù)組,則新創(chuàng)建的數(shù)組將按'C'進(jìn)行順序排列(行優(yōu)先);若指定了F',則將采用FORTRAN順序(列優(yōu)先)。subok:bool,如果其值為True,則子類將被傳遞,否則返回的數(shù)組將被強(qiáng)制為基類數(shù)組(默認(rèn))。ndmin:指定數(shù)組應(yīng)具有的最小維數(shù)。在Python中,數(shù)組的定義是廣義的,數(shù)組的元素可以是任意數(shù)據(jù)類型,如可以是數(shù)值、字符串等。數(shù)組的創(chuàng)建01一維數(shù)組一維數(shù)組是最簡(jiǎn)單的數(shù)組,只有一個(gè)下標(biāo)。一維數(shù)組相當(dāng)于向量。二維數(shù)組二維數(shù)組在概念上是二維的,即其下標(biāo)在兩個(gè)方向上變化,下標(biāo)變量在數(shù)組中的位置也處于一個(gè)平面之中。二維數(shù)組相當(dāng)于矩陣,因此,矩陣是數(shù)組的子集。多維數(shù)組在NumPy中,一個(gè)陣列如果具有兩個(gè)以上的維度,則稱為多維數(shù)組。NumPy中的多維數(shù)組是正常的二維矩陣的延伸。數(shù)組的創(chuàng)建01創(chuàng)建新數(shù)組asarray函數(shù)asarray函數(shù)類似于array,可以用來創(chuàng)建數(shù)組。該函數(shù)的調(diào)用格式如下:參數(shù)說明如下。a:任意形式的輸入?yún)?shù),可以是列表、列表的元組、元組、元組的元組、元組的列表、多維數(shù)組等。dtype:數(shù)據(jù)類型。order:指定在計(jì)算機(jī)內(nèi)存中的存儲(chǔ)元素的順序,包括'C'(行優(yōu)先)和F(列優(yōu)先)。數(shù)組的創(chuàng)建01frombuffer函數(shù)frombuffer函數(shù)用于實(shí)現(xiàn)動(dòng)態(tài)數(shù)組,通過buffer輸入?yún)?shù),以流的形式讀入并轉(zhuǎn)化成ndarray對(duì)象。該函數(shù)的調(diào)用格式如下:參數(shù)說明如下。buffer:可以是任意對(duì)象,會(huì)以流的形式讀入。dtype:返回?cái)?shù)組的數(shù)據(jù)類型,可選。count:讀取的數(shù)據(jù)數(shù)量,默認(rèn)為-1,即讀取所有數(shù)據(jù)。offset:讀取的起始位置,默認(rèn)為0。數(shù)組的創(chuàng)建01fromiter函數(shù)fromiter函數(shù)從可迭代對(duì)象中建立ndarray對(duì)象,返回一維數(shù)組。該函數(shù)的調(diào)用格式如下:參數(shù)說明如下。iterable:可迭代對(duì)象。dtype:數(shù)組的數(shù)據(jù)類型。count:讀取的數(shù)據(jù)數(shù)量,默認(rèn)為-1,即讀取所有數(shù)據(jù)。數(shù)組的創(chuàng)建01初始化數(shù)組函數(shù)數(shù)組的初始化就是為其賦初值,即向這個(gè)數(shù)組中裝入有意義的數(shù)據(jù),在程序設(shè)計(jì)中,數(shù)組初始化很重要。在NumPy模塊庫中,包含幾種初始化函數(shù),如表3-2所示。數(shù)組的創(chuàng)建01數(shù)組的屬性創(chuàng)建數(shù)組后,可以通過設(shè)置數(shù)組的屬性來實(shí)現(xiàn)對(duì)數(shù)組的操作,在NumPy數(shù)組中,ndarray的對(duì)象屬性如表3-3所示。02特殊數(shù)組特殊數(shù)組02數(shù)值數(shù)組NumPy提供了一系列元素為同一數(shù)值的數(shù)組函數(shù),下面分別進(jìn)行介紹??諗?shù)組在NumPy中,空數(shù)組使用empty命令表示。該函數(shù)的調(diào)用格式如下:特殊數(shù)組02空數(shù)組shape:指定數(shù)組的形狀,(m,n)表示生成m行n列的數(shù)組。dtype:定義數(shù)據(jù)類型,指定為'int8'、'uint8'、'int16'、'uint16'、'int32'、'uint32'、'int64'、'uint64'或提供zeros支持的其他類的名稱。默認(rèn)為浮點(diǎn)數(shù),即dtype=float。order:'C'表示生成C語言的行數(shù)組,'F'表示生成FORTRAN語言的列數(shù)組。特殊數(shù)組02全0數(shù)組在NumPy中,全0數(shù)組使用zeros命令表示。該函數(shù)的調(diào)用格式如下:參數(shù)說明如下。shape:指定數(shù)組的形狀,(m,n)表示生成m行n列的數(shù)組。dtype:定義數(shù)據(jù)類型,指定為'int8'、'uint8'、'int16'、'uint16'、'int32'、'uint32'、'int64'、'uint64'或提供zeros支持的其他類的名稱。默認(rèn)為浮點(diǎn)數(shù),即dtype=float。order:'C'表示生成C語言的行數(shù)組,'F'表示生成FORTRAN語言的列數(shù)組。特殊數(shù)組02全1數(shù)組在NumPy中,全1數(shù)組使用ones命令表示。該函數(shù)的調(diào)用格式如下:參數(shù)說明如下。shape:指定數(shù)組的形狀。dtype:定義數(shù)據(jù)類型。fillvalue:標(biāo)量(無向量),表示填充數(shù)組的值。order:'C'用于C語言的行數(shù)組,或者F用于FORTRAN語言的列數(shù)組。特殊數(shù)組02指定數(shù)值數(shù)組在NumPy中,使用full函數(shù)創(chuàng)建數(shù)值數(shù)組,該數(shù)組元素均為指定數(shù)值。該函數(shù)的調(diào)用格式如下:參數(shù)說明如下。shape:指定數(shù)組的形狀,數(shù)組的一維shape為(m)或(m,),(m,n)表示生成m行n列的二維數(shù)組。dtype:定義數(shù)據(jù)類型,指定為'int8'、'uint8'、'int16'、'uint16'、'int32'、'fuint32'、'int64'、'uint64'或提供zeros支持的其他類的名稱。默認(rèn)為浮點(diǎn)數(shù),即dtype=float。order:'C'表示生成C語言的行數(shù)組,'F'表示生成FORTRAN語言的列數(shù)組。特殊數(shù)組02隨機(jī)數(shù)組隨機(jī)數(shù)組,顧名思義,隨機(jī)生成、沒有規(guī)律,因此每一次生成的隨機(jī)數(shù)組不同。numpy.random模塊可方便地生成隨機(jī)數(shù)組,并返回指定范圍內(nèi)的一個(gè)整數(shù)或浮點(diǎn)數(shù)。0到1的隨機(jī)數(shù)組rand和random函數(shù)生成(0.0,1.0)區(qū)間的隨機(jī)浮點(diǎn)數(shù)數(shù)組,size表示數(shù)組大小。該函數(shù)的調(diào)用格式如下:特殊數(shù)組02指定區(qū)間的隨機(jī)數(shù)組randint函數(shù)用于在指定區(qū)間內(nèi)生成隨機(jī)整數(shù)數(shù)組。該函數(shù)的調(diào)用格式如下:其中,(low,hight)為取值區(qū)間,size用于指定數(shù)組的形狀。特殊數(shù)組02單位數(shù)組在NumPy中,eye函數(shù)用于創(chuàng)建指定大小的單位數(shù)組。該函數(shù)的調(diào)用格式如下:參數(shù)說明如下。N和M:表示數(shù)組大小,生成單位數(shù)組。k:對(duì)角元素的索引。dtype:定義數(shù)據(jù)類型,默認(rèn)為浮點(diǎn)數(shù)。order:'C'表示生成C語言的行數(shù)組,'F'表示生成FORTRAN語言的列數(shù)組。在NumPy中,identity函數(shù)用于創(chuàng)建n×n的單位數(shù)組。該函數(shù)的調(diào)用格式如下:特殊數(shù)組02概率分布數(shù)組概率分布是指用于表述隨機(jī)變量取值的概率規(guī)律。在自然現(xiàn)象和社會(huì)現(xiàn)象中,大量隨機(jī)變量都服從或近似服從不同種類的分布。在Python中,NumPy模塊庫的random子模塊中包含一些生成服從指定分布隨機(jī)數(shù)組的函數(shù),具體的調(diào)用格式如表3-4所示。特殊數(shù)組0203數(shù)組運(yùn)算數(shù)組運(yùn)算03數(shù)組的數(shù)學(xué)運(yùn)算基本運(yùn)算數(shù)組的基本運(yùn)算包括加、減、乘、除、乘方等,與線性代數(shù)中的定義是一樣的,相應(yīng)的運(yùn)算符為“+”“-”“*”“\”“**”。數(shù)組的基本運(yùn)算如下:在數(shù)組間進(jìn)行加、減、乘、除運(yùn)算時(shí),數(shù)組計(jì)算的默認(rèn)行為是逐項(xiàng)計(jì)算的。數(shù)組運(yùn)算03數(shù)組點(diǎn)積對(duì)于數(shù)組a、b,它們的點(diǎn)積計(jì)算公式如下:若a、b是兩個(gè)一維數(shù)組,那么計(jì)算的是這兩個(gè)數(shù)組對(duì)應(yīng)下標(biāo)元素的乘積和(數(shù)學(xué)上稱為內(nèi)積)。若a、b是兩個(gè)二維數(shù)組,那么計(jì)算的是兩個(gè)數(shù)組的矩陣乘積。若a、b是兩個(gè)多維數(shù)組,那么結(jié)果數(shù)組中的每個(gè)元素都是數(shù)組a的最后一維上的所有元素與數(shù)組b的倒數(shù)第二維上的所有元素的乘積和。在NumPy中,dot函數(shù)用于計(jì)算數(shù)組的點(diǎn)積。該函數(shù)的調(diào)用形式如下:其中,out用于保存輸出結(jié)果,需要說明的是,兩個(gè)數(shù)組必須同維。數(shù)組運(yùn)算03數(shù)組的索引在Python中,一個(gè)數(shù)組可以分解為多個(gè)數(shù)組元素,這些數(shù)組元素可以是基本數(shù)據(jù)類型或構(gòu)造類型。數(shù)組的索引和切片都是對(duì)數(shù)組元素的引用。索引值索引數(shù)組元素引用的方式如表3-7所示。數(shù)組運(yùn)算03數(shù)組運(yùn)算03choice函數(shù)除了使用索引和切片輸出數(shù)組元素,NumPy模塊中還提供了choice函數(shù),用于從給定的一維數(shù)組中隨機(jī)采樣。該函數(shù)的調(diào)用格式如下:參數(shù)說明如下。a:如果是一維數(shù)組,就表示從這個(gè)一維數(shù)組中隨機(jī)采樣;如果是int型,就表示從0到a-1這個(gè)序列中隨機(jī)采樣。size:采樣結(jié)果的數(shù)量,默認(rèn)為1,可以是整數(shù),表示要采樣的數(shù)量;也可以為tuple。replace:采樣的樣本是否要更換,當(dāng)將其指定為True時(shí),采樣會(huì)有重復(fù);當(dāng)將其指定為False時(shí),采樣不會(huì)重復(fù)。p:指定數(shù)組中每個(gè)元素采樣的概率,默認(rèn)為None,表示a中每個(gè)元素被采樣的概率都相同。數(shù)組運(yùn)算03take函數(shù)take函數(shù)用于沿軸取數(shù)組中的元素。該函數(shù)的調(diào)用格式如下:參數(shù)說明如下。a:輸入數(shù)組。indices:要獲取的值的索引。axis:抽取元素的軸。out:將結(jié)果放入數(shù)組。mode:指定出現(xiàn)超出數(shù)組范圍的索引后需要執(zhí)行的行為模式。其中,'raise'表示引發(fā)錯(cuò)誤、'wrap'表示循環(huán)、'clip'表示剪輯到指定范圍。數(shù)組運(yùn)算03choose函數(shù)choose函數(shù)按照索引對(duì)數(shù)組的元素進(jìn)行選擇,其調(diào)用格式如下:參數(shù)說明如下。a:索引數(shù)組,其中的數(shù)必須是整數(shù)。mode:指定出現(xiàn)超出數(shù)組范圍的索引是執(zhí)行的行為模式。mode=raise'表示a中的數(shù)必須在[0,n-1]區(qū)間;mode='wrap'表示a中的數(shù)可以是任意整數(shù)(signed),對(duì)n取余,映射到[0,n-1]區(qū)間;mode=clip'表示a中的數(shù)可以是任意整數(shù)(signed),負(fù)數(shù)映射為0,大于n-1的數(shù)映射為n-1。數(shù)組運(yùn)算03數(shù)組元素運(yùn)算

數(shù)組是相同數(shù)據(jù)類型的元素的集合。數(shù)組中各元素的存儲(chǔ)是有先后順序的,它們?cè)趦?nèi)存中按照這個(gè)先后順序連續(xù)存放在一起。數(shù)組排序NumPy的random子模塊提供了兩種數(shù)組排序函數(shù):shufle函數(shù)對(duì)原數(shù)組進(jìn)行隨機(jī)排列,permutation函數(shù)返回一個(gè)隨機(jī)排列的數(shù)組。數(shù)組運(yùn)算03遍歷數(shù)組遍歷數(shù)組是指把數(shù)組中的每個(gè)數(shù)都讀一遍,Python提供了兩種遍歷數(shù)組并輸出所有元素的方法。一般情況下,使用for循環(huán)遍歷數(shù)組元素。數(shù)組迭代。NumPy模塊庫中的nditer函數(shù)提供了一種靈活訪問一個(gè)或多個(gè)數(shù)組元素的方式。該函數(shù)的調(diào)用格式如下:數(shù)組運(yùn)算03數(shù)組元素的增減數(shù)組元素用整個(gè)數(shù)組的名字和它在數(shù)組中的位置來表示。因?yàn)閿?shù)組元素的下標(biāo)是從0開始的,所以索引i表示數(shù)組的第i+1個(gè)元素。例如,a[0]表示名字為a的數(shù)組中的第1個(gè)元素,a[1]代表數(shù)組a的第2個(gè)元素,依次類推。數(shù)組元素的增減是最基本的數(shù)組元素操作,常用的數(shù)組元素的增減命令如表3-8所示。數(shù)組運(yùn)算0304矩陣操作矩陣操作04創(chuàng)建矩陣矩陣只能是二維的,而數(shù)組可以是任意維度的,矩陣和數(shù)組在數(shù)學(xué)運(yùn)算上會(huì)有不同的結(jié)構(gòu)。除了維度不同,矩陣是matrix對(duì)象,數(shù)組是ndarray對(duì)象。矩陣是由m×n個(gè)數(shù)ay(i=1,2,…,m;j=1,2,…,n)排成的m行n列數(shù)表,記為。稱為m×n矩陣,也可以記成a,或Amxn。其中,i表示行數(shù),j表示列數(shù)。若m=n,則該矩陣為n階矩陣(n階方陣)。矩陣的生成主要有兩種方法,分別為采用matrix函數(shù)創(chuàng)建矩陣和采用mat函數(shù)創(chuàng)建矩陣。矩陣操作04matrix函數(shù)在NumPy中,matrix函數(shù)用于創(chuàng)建矩陣。該函數(shù)的調(diào)用形式如下:參數(shù)說明如下。data:表示定義矩陣的數(shù)據(jù),可以是ndarray對(duì)象或字符形式,矩陣的換行必須用分號(hào)(;)隔開,內(nèi)部數(shù)據(jù)必須為字符串形式(''),矩陣的元素之間必須以空格隔開。dtype:定義數(shù)據(jù)類型。copy:bool類型,定義是否引用內(nèi)置對(duì)象。矩陣操作04mat函數(shù)mat函數(shù)用來創(chuàng)建一個(gè)矩陣。該函數(shù)中的數(shù)據(jù)可以為字符串,以分號(hào)隔開;或者為列表形式,以逗號(hào)隔開。該函數(shù)的調(diào)用形式如下:參數(shù)說明如下。data:表示定義矩陣的數(shù)據(jù)。

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論