大數(shù)據(jù)技術(shù)在財(cái)務(wù)中的應(yīng)用Python版 課件 任務(wù)3.1 Numpy的基本操作_第1頁(yè)
大數(shù)據(jù)技術(shù)在財(cái)務(wù)中的應(yīng)用Python版 課件 任務(wù)3.1 Numpy的基本操作_第2頁(yè)
大數(shù)據(jù)技術(shù)在財(cái)務(wù)中的應(yīng)用Python版 課件 任務(wù)3.1 Numpy的基本操作_第3頁(yè)
大數(shù)據(jù)技術(shù)在財(cái)務(wù)中的應(yīng)用Python版 課件 任務(wù)3.1 Numpy的基本操作_第4頁(yè)
大數(shù)據(jù)技術(shù)在財(cái)務(wù)中的應(yīng)用Python版 課件 任務(wù)3.1 Numpy的基本操作_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目3

利用Numpy對(duì)財(cái)務(wù)信息進(jìn)行數(shù)值計(jì)算Numpy的基本操作任務(wù)3.1Numpy的統(tǒng)計(jì)分析任務(wù)3.2目錄引入案例任務(wù)分析知識(shí)解析案例解析任務(wù)實(shí)訓(xùn)實(shí)訓(xùn)評(píng)價(jià)3.1.1ndarray概述3.1.2數(shù)組的創(chuàng)建3.1.3數(shù)組的基本操作3.1.4數(shù)組的運(yùn)算任務(wù)3.1Numpy的基本操作任務(wù)3.1Numpy的基本操作引入案例美創(chuàng)科技有限公司(簡(jiǎn)稱(chēng):美創(chuàng)科技)財(cái)務(wù)人員小王需要收集第二分公司員工的相關(guān)信息,并將其存儲(chǔ)到ndarry數(shù)組中,便于后續(xù)查詢(xún)公司員工的相關(guān)信息,以及對(duì)公司員工的相關(guān)信息進(jìn)行分析。那么,利用Numpy模塊如何實(shí)現(xiàn)呢?任務(wù)分析要想實(shí)現(xiàn)美創(chuàng)科技第二分公司員工的相關(guān)信息的存儲(chǔ),需要用到Numpy模塊中的數(shù)組對(duì)象ndarry,通過(guò)array()函數(shù)創(chuàng)建數(shù)組存儲(chǔ)公司員工的相關(guān)信息;而要想實(shí)現(xiàn)公司職員相關(guān)信息的查詢(xún),則需要利用數(shù)組的索引實(shí)現(xiàn)所需數(shù)據(jù)的訪(fǎng)問(wèn),然后才能夠?qū)?shù)據(jù)進(jìn)行統(tǒng)計(jì)分析。任務(wù)3.1Numpy的基本操作知識(shí)解析Numpy庫(kù)是Python進(jìn)行科學(xué)計(jì)算的擴(kuò)展庫(kù),支持大量的維度數(shù)組與矩陣運(yùn)算。此外,針對(duì)數(shù)組提供了一個(gè)大型的高級(jí)數(shù)學(xué)函數(shù)庫(kù),能夠?qū)崿F(xiàn)算術(shù)運(yùn)算、邏輯運(yùn)算、形狀操作、排序、數(shù)據(jù)選擇、離散傅里葉變換、基本統(tǒng)計(jì)運(yùn)算、隨機(jī)模擬等功能。Numpy多為大型金融公司和核心的科學(xué)計(jì)算組織使用,具有運(yùn)算速度快、效率高、節(jié)省空間等特點(diǎn)。在使用Numpy進(jìn)行數(shù)據(jù)處理時(shí),首先要導(dǎo)入numpy模塊,其語(yǔ)法格式如下:importnumpyasnp執(zhí)行這條語(yǔ)句表示引入Numpy模塊,并為numpy模塊起別名np,這個(gè)np是一個(gè)約定成俗的名字。在以后的編程語(yǔ)句中,numpy與np等同。3.1.1ndarray概述

Numpy提供了兩種基本對(duì)象:ndarray和ufunc。其中,ndarray是一個(gè)多維數(shù)組,該對(duì)象由兩個(gè)部分組成,即實(shí)際的數(shù)據(jù)和描述這些數(shù)據(jù)的元數(shù)據(jù)。大部分的數(shù)組操作僅僅修改元數(shù)據(jù),而不改變底層的實(shí)際數(shù)據(jù)。而ufunc則是能夠?qū)?shù)組進(jìn)行處理的函數(shù)。一、ndarray介紹任務(wù)3.1Numpy的基本操作在數(shù)據(jù)處理中,為了更精確的計(jì)算結(jié)果,需要使用不同精度的數(shù)據(jù)類(lèi)型。Numpy極大擴(kuò)充了Python的數(shù)據(jù)類(lèi)型,其中大部分?jǐn)?shù)據(jù)類(lèi)型以數(shù)字結(jié)尾。同時(shí)需要強(qiáng)調(diào),每個(gè)Numpy數(shù)組中所有元素類(lèi)型必須相同,這樣做是為了更容易確定該數(shù)組所需的存儲(chǔ)空間。下表列舉了常用NumPy的基本類(lèi)型及其取值范圍。二、ndarray的數(shù)據(jù)類(lèi)型任務(wù)3.1Numpy的基本操作三、ndarray數(shù)組屬性屬性說(shuō)明ndim返回int。表示數(shù)組的維數(shù)。shape返回tuple。表示數(shù)組的尺寸,對(duì)于n行m列的矩陣,形狀為(n,m)。size返回int。表示數(shù)組元素的總個(gè)數(shù),相當(dāng)于shape屬性中n×m的值。dtype返回date-type。用于描述數(shù)組中元素的類(lèi)型。itemsize返回int。表示數(shù)組的每個(gè)元素的大小,以字節(jié)為單位。例如,一個(gè)元素類(lèi)型為float64的數(shù)組itemsize屬性值為8。3.1.2數(shù)組的創(chuàng)建利用NumPy提供的array()函數(shù)可以創(chuàng)建一維或多維數(shù)組,其語(yǔ)法格式如下:numpy.array(object,dtype=None,copy=True,order=None,subok=False,ndmin=0)參數(shù)說(shuō)明object接收用于創(chuàng)建數(shù)組的Python序列對(duì)象,如list、tuple等,表示想要?jiǎng)?chuàng)建的數(shù)組。無(wú)默認(rèn)值。dtype接收data-type。表示數(shù)組元素所需的數(shù)據(jù)類(lèi)型。如果未給定,則選擇保存對(duì)象所需的最小類(lèi)型。默認(rèn)為None。ndim接收int。指定生成數(shù)組的最小維度。默認(rèn)為None。一、利用array()函數(shù)創(chuàng)建數(shù)組任務(wù)3.1Numpy的基本操作【做中學(xué)3.1.1】利用array()函數(shù)創(chuàng)建數(shù)組存儲(chǔ)美創(chuàng)科技第一分公司員工的相關(guān)信息,員工信息如下表所示。

1.直接傳入列表的方式創(chuàng)建數(shù)組姓名性別崗位年齡工資入職日期楊長(zhǎng)江男開(kāi)發(fā)2028530201706柏強(qiáng)男開(kāi)發(fā)3415210201901張子軒男前端2316240201811王皓男產(chǎn)品2423690201701衛(wèi)曉敏女前端4315420201702【做中學(xué)3.1.1】程序如下:importnumpyasnp#導(dǎo)入Numpy模塊#將每一名員工的姓名,性別,崗位,年齡,工資和入職日期保存到一個(gè)列表中data1=["楊長(zhǎng)江","男","開(kāi)發(fā)",20,28530,201706]data2=["柏強(qiáng)","男","開(kāi)發(fā)",34,15210,201901]data3=["張子軒","男","前端",23,16240,201811]data4=["王皓","男","產(chǎn)品",24,23690,201701]data5=["衛(wèi)曉敏","女","前端",43,15420,201702]#創(chuàng)建二維數(shù)組保存以上公司員工的相關(guān)信息arr_data=np.array([data1,data2,data3,data4,data5])print(arr_data)程序運(yùn)行結(jié)果如下所示:[['楊長(zhǎng)江''男''開(kāi)發(fā)''20''28530''201706']['柏強(qiáng)''男''開(kāi)發(fā)''34''15210''201901']['張子軒''男''前端''23''16240''201811']['王皓''男''產(chǎn)品''24''23690''201701']['衛(wèi)曉敏''女''前端''43''15420''201702']]任務(wù)3.1Numpy的基本操作importnumpy

as

np#導(dǎo)入Numpy模塊arr=np.array(range(10))#利用range()函數(shù)生成數(shù)列并傳給array()函數(shù)print(arr)#輸出打印arr的內(nèi)容print(type(arr))#輸出打印arr的數(shù)據(jù)類(lèi)型【課中測(cè)】要實(shí)現(xiàn)生成0~18的數(shù)組,以下語(yǔ)法正確的是(

)。A.t1=np.array(range(20))B.t1=np.array(range(17))C.t1=np.array(range(18))D.t1=np.array(range(19))2.傳入range()函數(shù)生成的序列創(chuàng)建數(shù)組【做中學(xué)3.1.2】編寫(xiě)程序?qū)崿F(xiàn)生成0~9的數(shù)組。【做中學(xué)3.1.2】程序如下:[0123456789]<class'numpy.ndarray'>程序運(yùn)行結(jié)果如下所示:任務(wù)3.1Numpy的基本操作二、利用專(zhuān)門(mén)函數(shù)創(chuàng)建數(shù)組函數(shù)語(yǔ)法格式及說(shuō)明舉例np.arange(start,stop,step,dtype)用于創(chuàng)建等差數(shù)組,start表示起始值,默認(rèn)為0;stop表示終止值(不包含);step表示步長(zhǎng),默認(rèn)為1print(np.arange(0,5,2))輸出結(jié)果:[024]np.empty(shape,dtype=float,order='C')用來(lái)創(chuàng)建一個(gè)指定形狀、數(shù)據(jù)類(lèi)型且未初始化的數(shù)組。shape表示數(shù)組形狀,dtype表示數(shù)據(jù)類(lèi)型,默認(rèn)浮點(diǎn)型。print(np.empty((2,3),dtype=8))輸出結(jié)果:[[7710995][12310661]]np.zeros(shape,dtype=float,order='C')用來(lái)創(chuàng)建指定大小的數(shù)組,數(shù)組元素以0來(lái)填充。zeros()函數(shù)各參數(shù)含義與empty()函數(shù)完全相同print(np.zeros(5))print(np.zeros((2,3),dtype=8))輸出結(jié)果:[0.0.0.0.0.][[000][000]]np.ones(shape,dtype=float,order='C')用來(lái)創(chuàng)建指定大小的數(shù)組,數(shù)組元素以1來(lái)填充。ones()函數(shù)各參數(shù)含義與empty()函數(shù)完全相同。print(np.ones(5))print(np.ones((2,2),dtype=int))輸出結(jié)果:[1.1.1.1.1.][[11][11]]numpy.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)用于創(chuàng)建一個(gè)根據(jù)元素個(gè)數(shù)生成的等差數(shù)列數(shù)組。start表示起始值;stop表示終止值,如果endpoint為true,該值包含于數(shù)列中;num表示生成數(shù)組的元素的個(gè)數(shù);retstep表示是否顯示步長(zhǎng)。a=np.linspace(1,10,6)print(a)程序運(yùn)行結(jié)果:[1.2.84.66.48.210.]任務(wù)3.1Numpy的基本操作

常見(jiàn)的隨機(jī)數(shù)生成方法三、隨機(jī)數(shù)生成方法函數(shù)語(yǔ)法格式及說(shuō)明舉例np.random.random(size=None)用于產(chǎn)生[0.0,1.0)的浮點(diǎn)數(shù),size表示生成元素個(gè)數(shù)。若沒(méi)有參數(shù)輸入,則生成一個(gè)數(shù)。print(np.random.random())輸出結(jié)果:0.22867521257116print(np.random.random(3))輸出結(jié)果如下所示:[0.432256710.079402440.19855889]np.random.rand(d0,d1,…,dn)用于生成一個(gè)(d0,d1,…,dn)維的數(shù)組,數(shù)組元素來(lái)自[0.0,1.0)內(nèi)均勻分布的隨機(jī)數(shù)。若沒(méi)有參數(shù)輸入,則生成一個(gè)數(shù)。print(np.random.rand(2,3))輸出結(jié)果如下所示:[[0.77768480.1749160.23383833][0.074388580.748597340.62579588]]np.random.randn(d0,d1,…,dn)用于生成一個(gè)或一組服從標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)樣本值。當(dāng)函數(shù)括號(hào)內(nèi)沒(méi)有參數(shù)時(shí),則返回一個(gè)浮點(diǎn)數(shù);當(dāng)函數(shù)括號(hào)內(nèi)有一個(gè)參數(shù)時(shí),則返回一維數(shù)組;當(dāng)函數(shù)括號(hào)內(nèi)有兩個(gè)及以上參數(shù)時(shí),則返回對(duì)應(yīng)維度的數(shù)組。print(np.random.randn(3))輸出結(jié)果如下所示:[-0.925995931.35150597-0.44634542]print(np.random.randn(2,3))輸出結(jié)果如下所示:[[0.34513473-0.768189120.64543786][-0.048000180.420519181.67065808]]任務(wù)3.1Numpy的基本操作函數(shù)語(yǔ)法格式及說(shuō)明舉例np.random.randint(low,high,size)用于隨機(jī)生成指定范圍內(nèi)的整數(shù),隨機(jī)數(shù)取值區(qū)間為[low,high),若沒(méi)有輸入high參數(shù),則取值區(qū)間為[0,low)。size用于確定數(shù)組的形狀。print(np.random.randint(1,10))print(np.random.randint(1,10,(2,2)))輸出結(jié)果:8[[97][19]]np.random.shuffle()用于將序列的所有元素隨機(jī)排序。num=[1,2,3,4,5]np.random.shuffle(num)print(num)輸出結(jié)果:[3,5,2,4,1]np.random.choice(a,size,replace,p)用于從序列中獲取隨機(jī)元素。a:表示從a中隨機(jī)選取size個(gè)數(shù),可以從數(shù)組、列表或元組中隨機(jī)抽取,必須是一維的。replace:表示抽樣之后是否放回。replace=False,表示無(wú)放回的抽樣,不會(huì)出現(xiàn)重復(fù)的元素;replace=True,表示放回抽樣,有可能會(huì)出現(xiàn)重復(fù)的元素。默認(rèn)為T(mén)rue。p表示每個(gè)元素被抽取的概率,如果沒(méi)有指定,默認(rèn)a中所有元素被選取的概率是相等的。num=[1,2,3,4,5,6,7,8,9]print(np.random.choice(num,5))print(np.random.choice(num,(2,3)))print(np.random.choice(num,(2,3),replace=False))輸出結(jié)果如下所示:[67944][[622][651]][[451][826]]

常見(jiàn)的隨機(jī)數(shù)生成方法任務(wù)3.1Numpy的基本操作除了上述產(chǎn)生隨機(jī)數(shù)的函數(shù)外,random模塊中還包括許多產(chǎn)生某種分布隨機(jī)數(shù)的函數(shù),如下表所示。

random模塊中其他產(chǎn)生隨機(jī)數(shù)的函數(shù)函數(shù)說(shuō)明seed確定隨機(jī)數(shù)生成器的種子。permutation返回一個(gè)序列的隨機(jī)排列或返回一個(gè)隨機(jī)排列的范圍。binomial產(chǎn)生二項(xiàng)分布的隨機(jī)數(shù)。normal產(chǎn)生正態(tài)(高斯)分布的隨機(jī)數(shù)。beta產(chǎn)生beta分布的隨機(jī)數(shù)。chisquare產(chǎn)生卡方分布的隨機(jī)數(shù)。gamma產(chǎn)生gamma分布的隨機(jī)數(shù)。uniform產(chǎn)生在[0,1)中均勻分布的隨機(jī)數(shù)。任務(wù)3.1Numpy的基本操作3.1.3數(shù)組的基本操作一維數(shù)組的索引與切片方法與Python中列表類(lèi)似,數(shù)組通過(guò)索引訪(fǎng)問(wèn)數(shù)組中的元素,單個(gè)索引訪(fǎng)問(wèn)用于獲取數(shù)組的一個(gè)對(duì)應(yīng)元素,而數(shù)組切片則用來(lái)獲取數(shù)組中一個(gè)區(qū)域內(nèi)所對(duì)應(yīng)的多個(gè)元素。一維數(shù)組的索引與切片方法如下表所示。一、數(shù)組索引與切片1.一維數(shù)組的索引和切片操作語(yǔ)法格式及說(shuō)明舉例利用索引獲取單個(gè)元素array[index],其中array表示數(shù)組名,index表示索引位置,并且是從0開(kāi)始的。arr1=np.arange(5)print(arr1[2])輸出結(jié)果:2數(shù)組的切片array[start:stop:step]start表示起始索引,可以省略,默認(rèn)是0;stop表示終止索引,并且不能取到;step表示索引步長(zhǎng)。arr2=np.arange(7)print(arr2[3:6])print(arr2[3:])print(arr2[0:5:2])輸出結(jié)果:[345][3456][024]任務(wù)3.1Numpy的基本操作二維數(shù)組兩個(gè)維度(行與列)都有索引,在訪(fǎng)問(wèn)的時(shí)候要用逗號(hào)隔開(kāi),并且先訪(fǎng)問(wèn)行索引,再訪(fǎng)問(wèn)列索引。二維數(shù)組的索引與切片的語(yǔ)法格式分別為:2.二維數(shù)組的索引與切片其中,row_index表示行索引,col_index表示列索引,并且都是從0開(kāi)始的。row_start和col_start分別表示行與列起始索引,默認(rèn)都是0開(kāi)始。row_stop和col_stop表示行與列的終止索引,并且這兩個(gè)終止索引對(duì)應(yīng)的值是不能取到的。array[row_index,col_index]array[row_start:row_stop,col_start:col_stop]任務(wù)3.1Numpy的基本操作【做中學(xué)3.1.3】編程實(shí)現(xiàn)如下操作:首先創(chuàng)建數(shù)組data,然后對(duì)data進(jìn)行索引與切片操作,如圖3.1.1所示。圖3.1.1二維數(shù)組的索引與切片import

numpyasnp#導(dǎo)入Numpy模塊list1=[[1,2],[3,4],[5,6]]#創(chuàng)建列表data=np.array(list1)#創(chuàng)建數(shù)組print("創(chuàng)建的數(shù)組為:\n",data)#輸出打印數(shù)組print("獲取單個(gè)元素為:",data[0,1])print("切片操作獲取的數(shù)據(jù)為:\n",data[1:3])print("切片操作獲取的數(shù)據(jù)為:\n",data[0:2,0])【做中學(xué)3.1.3】程序如下:創(chuàng)建的數(shù)組為:[[12][34][56]]獲取單個(gè)元素為:2切片操作獲取的數(shù)據(jù)為:[[34][56]]切片操作獲取的數(shù)據(jù)為:[13]程序運(yùn)行結(jié)果:任務(wù)3.1Numpy的基本操作二、數(shù)組的轉(zhuǎn)置與變形在對(duì)數(shù)組進(jìn)行操作時(shí),經(jīng)常要對(duì)數(shù)據(jù)的形狀進(jìn)行改變。在Numpy中,可以使用reshape()函數(shù)和ravel()函數(shù)改變數(shù)組的形狀。reshape()函數(shù)改變數(shù)組的形狀,也就是改變數(shù)組的維度,其參數(shù)為一個(gè)正整數(shù)元組,分別指出數(shù)組在每個(gè)維度上的大小。reshape()函數(shù)的語(yǔ)法格式為:array.reshape(m,n)。ravel()函數(shù)是將多維數(shù)組展平,即將多維數(shù)組展平為一維數(shù)組。ravel()函數(shù)的語(yǔ)法格式為:array.ravel()。1.數(shù)組的變形數(shù)組的轉(zhuǎn)置是指將行與列對(duì)調(diào),即第1行變成第1列,第2行變成第2列,依次類(lèi)推。在Numpy中,數(shù)組的轉(zhuǎn)置可以使用T方法實(shí)現(xiàn)。其語(yǔ)法格式為:array.T。2.數(shù)組的轉(zhuǎn)置任務(wù)3.1Numpy的基本操作【做中學(xué)3.1.4】編寫(xiě)程序?qū)崿F(xiàn)以下操作:首先利用arange()函數(shù)生成一個(gè)12個(gè)元素的一維數(shù)組,然后利用reshape()函數(shù)重塑為形狀為3×4的二維數(shù)組,最后對(duì)二維數(shù)組進(jìn)行轉(zhuǎn)置和平展操作。importnumpyasnp#導(dǎo)入Numpy模塊arr=np.arange(1,13)#生成數(shù)組print("生成的一維數(shù)組為:",arr)arr1=arr.reshape(3,4)print("變形后的數(shù)組為:\n",arr1)arr2=arr1.Tprint("轉(zhuǎn)置后的數(shù)組為:\n",arr2)print("展平后的數(shù)組為:\n",arr2.ravel())生成的一維數(shù)組為:[123456789101112]變形后的數(shù)組為:[[1234][5678][9101112]]轉(zhuǎn)置后的數(shù)組為:[[159][2610][3711][4812]]展平后的數(shù)組為:[159261037114812]程序運(yùn)行結(jié)果如下:【做中學(xué)3.1.4】程序如下:任務(wù)3.1Numpy的基本操作3.1.4數(shù)組的運(yùn)算在數(shù)組運(yùn)算中,相同形狀的數(shù)組是將這兩個(gè)數(shù)組中索引相同的元素進(jìn)行運(yùn)算。如果是一個(gè)數(shù)組的運(yùn)算,則是將數(shù)組中的所有元素進(jìn)行相同運(yùn)算。在NumPy中,數(shù)組可以直接進(jìn)行加、減、乘、除、指數(shù)、求倒數(shù)、取相反數(shù)、位運(yùn)算等運(yùn)算,而不需要使用煩瑣的for循環(huán)之類(lèi)的算法,并且在除法運(yùn)算時(shí),遇到除數(shù)為0時(shí),會(huì)自動(dòng)提示無(wú)效運(yùn)算,但是仍會(huì)將計(jì)算結(jié)果顯示出來(lái),無(wú)效值處用NaN或inf表示。在數(shù)組運(yùn)算中,相同形狀的數(shù)組按元素級(jí)進(jìn)行逐個(gè)元素運(yùn)算;而不同形狀的數(shù)組,則按廣播機(jī)制進(jìn)行計(jì)算,并且在數(shù)組運(yùn)算后,將返回包含運(yùn)算結(jié)果的新數(shù)組。一、相同形狀數(shù)組的運(yùn)算【做中學(xué)3.1.5】對(duì)隨機(jī)生成的兩個(gè)2×2的二維數(shù)組進(jìn)行簡(jiǎn)單的算術(shù)運(yùn)算。任務(wù)3.1Numpy的基本操作importnumpyasnpa=np.random.randint(1,10,(2,2))print("生成數(shù)組a:\n",a)b=np.random.randint(1,10,(2,2))print("生成數(shù)組b:\n",b)print("數(shù)組a和b的和為:\n",a+b)print("數(shù)組a和b的差為:\n",a-b)print("數(shù)組a和b的積為:\n",a*b)print("數(shù)組a和b的商為:\n",a/b)生成數(shù)組a:[[11][33]]生成數(shù)組b:[[37][87]]數(shù)組a和b的和為:

[[48][1110]]數(shù)組a和b的差為:

[[-2-6][-5-4]]數(shù)組a和b的積為:

[[37][2421]]數(shù)組a和b的商為:

[[0.333333330.14285714][0.3750.42857143]]【做中學(xué)3.1.5】程序如下:程序運(yùn)行結(jié)果如下:任務(wù)3.1Numpy的基本操作二、不同形狀數(shù)組的運(yùn)算【做中學(xué)3.1.6】編寫(xiě)程序?qū)崿F(xiàn)圖3.1.2中數(shù)組的運(yùn)算,圖中虛線(xiàn)部分表示本身是不存在的數(shù)據(jù),在運(yùn)算時(shí)利用Numpy的廣播機(jī)制自動(dòng)進(jìn)行的填充。圖3.1.2Numpy數(shù)組運(yùn)算的廣播機(jī)制importnumpyasnpa=np.arange(3)print("a+1的值為:",a+1)b=np.array([[1,1,1],[2,2,2],[3,3,3]])print("b+a的值為:\n",b+a)c=np.arange(1,4).reshape(3,1)print("c+a的值為:\n",c+a)a+1的值為:[123]b+a的值為:[[123][234][345]]c+a的值為:[[123][234][345]]對(duì)于不同形狀的數(shù)組,則按照廣播機(jī)制進(jìn)行運(yùn)算,并且在數(shù)組運(yùn)算后,將返回包含運(yùn)算結(jié)果的新數(shù)組。當(dāng)兩個(gè)數(shù)據(jù)的形狀不一致時(shí),低維度數(shù)組會(huì)自動(dòng)將維度擴(kuò)充到與高維度數(shù)組一致,然后再按元素逐個(gè)運(yùn)算,這就是數(shù)組的廣播機(jī)制。【做中學(xué)3.1.6】程序如下:程序運(yùn)行結(jié)果如下:任務(wù)3.1Numpy的基本操作三、通用函數(shù)(ufunc)NumPy中的ufunc對(duì)象也稱(chēng)為ufunc函數(shù),它包含了對(duì)數(shù)組進(jìn)行處理的通用函數(shù)。通用函數(shù)(ufunc)是針對(duì)ndarray數(shù)組對(duì)象執(zhí)行元素級(jí)運(yùn)算的函數(shù),即通用函數(shù)會(huì)對(duì)數(shù)組中的每一個(gè)元素值作用后產(chǎn)生新的元素值,并返回新的元素值組成的數(shù)組。因此,通用函數(shù)(ufunc)都是以NumPy數(shù)組作為輸出的。1.通用函數(shù)(ufunc)簡(jiǎn)介2.通用函數(shù)(ufunc)的分類(lèi)按照通用函數(shù)(ufunc)所接收的數(shù)組參數(shù)個(gè)數(shù)來(lái)劃分,接收一個(gè)數(shù)組參數(shù)的稱(chēng)為一元通用函數(shù),而接收兩個(gè)數(shù)組參數(shù)的稱(chēng)為二元通用函數(shù)。按照通用函數(shù)(ufunc)的運(yùn)算功能劃分,常用的通用函數(shù)(ufunc)運(yùn)算有四則運(yùn)算、比較運(yùn)算和邏輯運(yùn)算等。通用函數(shù)(ufunc)支持全部的四則運(yùn)算,并且保留習(xí)慣的運(yùn)算符,與數(shù)值運(yùn)算使用方法相同,但要注意操作的對(duì)象是數(shù)組。任務(wù)3.1Numpy的基本操作常用的一元通用函數(shù)函數(shù)說(shuō)明ceil()對(duì)數(shù)組各元素向上取整,即大于等于該值的最小整數(shù)floor()對(duì)數(shù)組各元素向下取整,即小于等于該值的最大整數(shù)rint()將各元素的值四舍五入取整,保留dtypemodf()將數(shù)組的小數(shù)和整數(shù)部分以?xún)蓚€(gè)獨(dú)立數(shù)組的形式返回。isnan()判斷數(shù)組中元素是否為NaN(非數(shù)字),如果數(shù)字是NaN(不是數(shù)字),則返回True,否則返回Falseisfinite()、isinf()判斷判斷數(shù)組中的元素是否有限abs()、fabs()計(jì)算整數(shù)、浮點(diǎn)數(shù)或復(fù)數(shù)的絕對(duì)值,對(duì)于非復(fù)數(shù)值可以使用更快的fabssqrt()、square()分別表示計(jì)算各元素的平方根、平方exp()計(jì)算各元素的指數(shù)log()、log10()、log2()分別表示對(duì)數(shù)組各元素取自然對(duì)數(shù)(底數(shù)為e),底數(shù)為10,底數(shù)為2。sing()計(jì)算各元素的正負(fù)號(hào),1(正數(shù)),0(零),-1(負(fù)數(shù))arccos()、arccosh()、arcsin()、arcsinh()、arctan()、arctanh()反三角函數(shù)logical_not()計(jì)算各元素取反任務(wù)3.1Numpy的基本操作

常用的二元通用函數(shù)函數(shù)等價(jià)運(yùn)算符說(shuō)明add()+將兩個(gè)數(shù)組中對(duì)應(yīng)位置元素相加。subtract()-將兩個(gè)數(shù)組中對(duì)應(yīng)位置元素相減。multiply()*將兩個(gè)數(shù)組中對(duì)應(yīng)位置元素相乘。dot()

數(shù)組中對(duì)應(yīng)元素相乘的累加和(矢量積)。divide()、floor_divide()/、//將數(shù)組中對(duì)應(yīng)元素相除或向下整除。mod()、remainder()、fmod()%元素級(jí)的求模計(jì)算(除法的余數(shù))。maximum()、fmax()

元素級(jí)的最大值計(jì)算,fmax將忽略NaN。minimum()、fmin()

元素級(jí)的最小值計(jì)算,fmin將忽路NaN。power()

對(duì)第一個(gè)數(shù)組中的元素A,根據(jù)第二個(gè)數(shù)組中的元素B,計(jì)算AB。copysing()

將第二個(gè)數(shù)組中的值的符號(hào)復(fù)制給第一個(gè)數(shù)組中的值。equal()、not_equal()greater()、greater_equal()、less()、less_equal()==、!=>、>=、<、<=執(zhí)行元素級(jí)的比較運(yùn)算,最終產(chǎn)生布爾型數(shù)組。logical_and()、logical_or()、logical_xor()&、|、^執(zhí)行元素級(jí)的邏輯運(yùn)算,返回布爾型值。任務(wù)3.1Numpy的基本操作案例解析本任務(wù)“引入案例”的解析如下:小王收集的關(guān)于美創(chuàng)科技第二分公司員工的基本信息如下表所示,先將每個(gè)員工的信息用列表存儲(chǔ),然后用Numpy模塊中的array()函數(shù)創(chuàng)建數(shù)組存儲(chǔ)第二分公司員工的相關(guān)信息,并查看某一員工的相關(guān)情況和工資水平。STEP01美創(chuàng)科技第二分公司員工信息表姓名性別崗位年齡工資入職日期何欣言女客服397560201804張自華男客服329890201808孫潔女產(chǎn)品2327520201707

溫馨提示

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

評(píng)論

0/150

提交評(píng)論