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

下載本文檔

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

文檔簡介

項(xiàng)目三

數(shù)組計(jì)算庫NumPy任務(wù)1數(shù)組的創(chuàng)建任務(wù)2特殊數(shù)組任務(wù)3數(shù)組運(yùn)算任務(wù)4矩陣操作任務(wù)1數(shù)組的創(chuàng)建任務(wù)引入小王分到的項(xiàng)目主要是統(tǒng)計(jì)運(yùn)算,由于沒有數(shù)據(jù),為了運(yùn)行程序,小王定義數(shù)組數(shù)據(jù)進(jìn)行程序演示。那么數(shù)組是什么?如何創(chuàng)建?知識準(zhǔn)備數(shù)組(Array)是有序的元素序列,向量、矩陣是線性代數(shù)中定義的一個數(shù)學(xué)概念。數(shù)組是計(jì)算機(jī)上的概念,從外觀和數(shù)據(jù)結(jié)構(gòu)上看,二維數(shù)組和數(shù)學(xué)中的矩陣沒有區(qū)別,一維數(shù)組和數(shù)學(xué)中的向量沒有區(qū)別。向量、矩陣是特殊的數(shù)組,三者關(guān)系如圖所示。一、數(shù)組數(shù)據(jù)類型Numpy支持的數(shù)據(jù)類型比Python內(nèi)置的類型要多,基本上可以和C語言的數(shù)據(jù)類型對應(yīng)上,其中部分類型對應(yīng)為Python內(nèi)置的類型,表列舉了常用NumPy基本類型。續(xù)案例——定義數(shù)組類型案例——定義輸入數(shù)組數(shù)據(jù)類型二、創(chuàng)建數(shù)組在NumPy中,每一個線性的數(shù)組稱為是一個軸(axis),也就是維度(dimensions)。根據(jù)數(shù)組中元素的維度將數(shù)組分為一維數(shù)組、二維數(shù)組、多維數(shù)組。1.a(chǎn)rray函數(shù)Numpy使用array函數(shù)通過直接定義數(shù)據(jù)創(chuàng)建數(shù)組,返回N維數(shù)組對象(即ndarray)型2.一維數(shù)組一維數(shù)組是最簡單的數(shù)組,數(shù)組只有一個下標(biāo),一維數(shù)組相當(dāng)于向量。案例——創(chuàng)建一維數(shù)組(1)arange函數(shù)arange通過直接定義數(shù)據(jù)元素個數(shù),而不是定義數(shù)據(jù)元素來創(chuàng)建數(shù)組。案例——創(chuàng)建一個從0開始,到10結(jié)束,增量為2的數(shù)組x(2)linspace函數(shù)linspace通過直接定義數(shù)據(jù)元素個數(shù),而不是數(shù)據(jù)元素直接的增量來創(chuàng)建一維數(shù)組(向量)。案例——創(chuàng)建一個從0開始,到10結(jié)束,包含6個數(shù)據(jù)元素的向量x(3)函數(shù)logspace與linspace一樣,logspace也通過直接定義向量元素個數(shù),而不是數(shù)據(jù)元素之間的增量來創(chuàng)建一個對數(shù)分隔的數(shù)組。3.二維數(shù)組二維數(shù)組在概念上是二維的,即是說其下標(biāo)在兩個方向上變化,下標(biāo)變量在數(shù)組中的位置也處于一個平面之中。二維數(shù)組相當(dāng)于矩陣,所以矩陣是數(shù)組的子集。案例——創(chuàng)建二維數(shù)組4.多維數(shù)組在Numpy中,一個陣列如果具有兩個以上的維度則被稱為多維數(shù)組。在Numpy中的多維數(shù)組是正常的兩維矩陣的延伸。下一節(jié)介紹的ones(),zeros()或rand()函數(shù)可直接創(chuàng)建多維數(shù)組。案例——三維數(shù)組生成示例三、創(chuàng)建新數(shù)組Numpy除了可以直接創(chuàng)建數(shù)組的函數(shù)外,還提供了從已有數(shù)組的基礎(chǔ)上創(chuàng)建數(shù)組的函數(shù)。1.a(chǎn)sarray函數(shù)numpy.asarray函數(shù)類似numpy.array,可以用來創(chuàng)建數(shù)組2.frombuffer函數(shù)numpy.frombuffer用于實(shí)現(xiàn)動態(tài)數(shù)組,接受buffer輸入?yún)?shù),以流的形式讀入轉(zhuǎn)化成ndarray對象3.fromiter函數(shù)numpy.fromiter函數(shù)從可迭代對象中建立ndarray對象,返回一維數(shù)組4.初始化數(shù)組函數(shù)數(shù)組的初始化就是對其賦初值,也就是向這個數(shù)組中裝入有意義的數(shù)據(jù),在程序設(shè)計(jì)匯總初始化很重要。案例——使用不同函數(shù)創(chuàng)建數(shù)組。四、數(shù)組的屬性創(chuàng)建數(shù)組后,可以通過設(shè)置數(shù)組的屬性來實(shí)現(xiàn)數(shù)組的操作,NumPy的數(shù)組中ndarray對象屬性見表。numpy的多維數(shù)組不僅僅表示三維,還能表示4、5...維。秩,即軸的數(shù)量或維度的數(shù)量,兩行三列的數(shù)組,元素個數(shù)為2×3=6個,秩為2,表示它有兩個維度,第一個維度長度為2,第二個維度長度為3。案例——數(shù)組的屬性顯示示例任務(wù)2特殊數(shù)組任務(wù)引入為了演示程序,小王需要定義大量數(shù)據(jù),直接輸入數(shù)組數(shù)據(jù)過于繁瑣,那么如何解決這一問題呢?20世紀(jì)80年代以來,問題解決或者解決問題已成為國際理科教育的一種潮流。經(jīng)過調(diào)查,發(fā)現(xiàn)使用特殊數(shù)組可以直接定義指定大小的數(shù)組。那么,特殊數(shù)組有哪些?知識準(zhǔn)備在工程計(jì)算以及理論分析中,經(jīng)常會遇到一些特殊的數(shù)組,比如全0數(shù)組、單位數(shù)組、隨機(jī)數(shù)組等。對于這些數(shù)組,在Numpy中都有相應(yīng)的命令可以直接生成。下面我們就介紹一些常用的命令。一、數(shù)值數(shù)組Numpy提供了一系列元素為同一數(shù)值的數(shù)組函數(shù),下面分別進(jìn)行介紹。1.空數(shù)組在Numpy中,空數(shù)組使用empty命令表示2.全零數(shù)組在Numpy中,全零數(shù)組使用zeros命令表示3.全一數(shù)組在Numpy中,全1數(shù)組使用ones命令表示、4.?dāng)?shù)值數(shù)組在Numpy中,使用full函數(shù)創(chuàng)建數(shù)值數(shù)組,該數(shù)組元素均為指定數(shù)值案例——數(shù)組生成示例案例——數(shù)值數(shù)組生成示例二、隨機(jī)數(shù)組隨機(jī)數(shù)組,顧名思義,隨機(jī)生成,沒有規(guī)律,因此每一次生成的隨機(jī)數(shù)組不同。numpy.random模塊可方便生成隨機(jī)數(shù)組,返回指定范圍內(nèi)的一個整數(shù)或浮點(diǎn)數(shù)。1.0到1內(nèi)隨機(jī)數(shù)組rand和random函數(shù)生成[0.0,1.0)之間的隨機(jī)浮點(diǎn)數(shù)數(shù)組,size表示數(shù)組大小。案例——0到1內(nèi)隨機(jī)數(shù)組生成示例案例——生成相同隨機(jī)數(shù)組2.指定區(qū)間隨機(jī)數(shù)組randint函數(shù)用于在指定區(qū)間內(nèi)生成隨機(jī)整數(shù)數(shù)組案例——生成隨機(jī)數(shù)組示例三、單位數(shù)組在numpy中,eye函數(shù)創(chuàng)建指定大小的單位數(shù)組案例——單位數(shù)組生成示例四、概率分布數(shù)組概率分布是指用于表述隨機(jī)變量取值的概率規(guī)律。在自然現(xiàn)象和社會現(xiàn)象中,大量隨機(jī)變量都服從或近似服從不同種類的分布.例如,一個地區(qū)的男性成年人的身高;測量某零件長度的誤差,海洋波浪的高度,半導(dǎo)體器件中的熱噪聲電流或電壓等,都服從正態(tài)分布。在間隔時間內(nèi)放射出a粒子的數(shù)目服從指數(shù)分布。在Python中,Numpy模塊的random子模塊中包含一些生成服從指定分布隨機(jī)數(shù)組的函數(shù)。具體的調(diào)用格式見表。案例——生成指定分布數(shù)組任務(wù)3數(shù)組運(yùn)算任務(wù)引入小王定義數(shù)組后,下一步是進(jìn)行數(shù)組運(yùn)算。那么,基本的數(shù)組運(yùn)算有哪些,他們是如何實(shí)現(xiàn)的?知識準(zhǔn)備數(shù)組運(yùn)算是指數(shù)組對應(yīng)元素之間的運(yùn)算,也稱點(diǎn)運(yùn)算。矩陣的乘法、乘方和除法有特殊的數(shù)學(xué)含義,并不是數(shù)組對應(yīng)元素的運(yùn)算。所以數(shù)組乘法、乘方和除法的運(yùn)算符前特別加了一個點(diǎn)。一、數(shù)組數(shù)學(xué)運(yùn)算1.基本運(yùn)算數(shù)組的基本運(yùn)算包括加、減、乘、除、乘方、求逆等。與大家所學(xué)的線性代數(shù)中的定義是一樣的,相應(yīng)的運(yùn)算符為“+”、“-”、“*”、“\”、“**”。案例——數(shù)組基本運(yùn)算示例2.?dāng)?shù)組點(diǎn)積對于數(shù)組a、b,數(shù)組a和b的點(diǎn)積計(jì)算公式如下:案例——計(jì)算一維數(shù)組點(diǎn)積示例

廣播的規(guī)則如下:如果兩個數(shù)組的維度數(shù)不相同,那么小維度數(shù)組的形狀將會在最左邊補(bǔ)1。如果兩個數(shù)組的形狀在任何一個維度上都不匹配,那么數(shù)組的形狀會沿著維度為1的維度擴(kuò)展以匹配另外一個數(shù)組的形狀。如果兩個數(shù)組的形狀在任何一個維度上都不匹配,并且沒有任何一個維度等于1,會引發(fā)異常。關(guān)于數(shù)組廣播的函數(shù)見表。案例——不同形狀數(shù)組運(yùn)算示例Numpy常用的數(shù)學(xué)運(yùn)算函數(shù)見表。3.?dāng)?shù)組的索引在Python中,一個數(shù)組可以分解為多個數(shù)組元素,這些數(shù)組元素可以是基本數(shù)據(jù)類型或是構(gòu)造類型。數(shù)組的索引和切片都是對數(shù)組元素的引用。4.索引值索引使用下標(biāo)數(shù)組元素引用的方式見表。案例——數(shù)組索引示例5.choice函數(shù)除了使用索引和切片輸出數(shù)組元素,NumPy

模塊中還提供了choice函數(shù),用于從給定的1維數(shù)組中隨機(jī)采樣案例——數(shù)組元素輸出6.take函數(shù)take函數(shù)用于沿軸取數(shù)組中的元素案例——輸出數(shù)組元素二、數(shù)組元素運(yùn)算數(shù)組是相同數(shù)據(jù)類型的元素的集合。數(shù)組中的各元素的存儲是有先后順序的,它們在內(nèi)存中按照這個先后順序連續(xù)存放在一起。1.?dāng)?shù)組排序Numpy的random子模塊提供了兩種數(shù)組排序函數(shù),shuffle函數(shù)對原數(shù)組進(jìn)行隨機(jī)排列;permutation函數(shù)返回一個隨機(jī)排列的數(shù)組。案例——數(shù)組排序示例2.遍歷數(shù)組遍歷數(shù)組是指把數(shù)組中的每個數(shù)都讀一遍,Python提供了兩種遍歷數(shù)組,輸出所有元素的方法。(1)一般情況下,使用for循環(huán)遍歷數(shù)組元素。案例——使用for循環(huán)輸出數(shù)組元素。(2)數(shù)組迭代NumPy

模塊中的nditer提供了一種靈活訪問一個或者多個數(shù)組元素的方式案例——數(shù)組輸出示例3.?dāng)?shù)組元素的增減數(shù)組元素用整個數(shù)組的名字和它自己在數(shù)組中的順序位置來表示。因?yàn)閿?shù)組元素的下表是從0開始,因此索引i表示數(shù)組的第i+1個元素。例如,a[0]表示名字為a的數(shù)組中的第一個元素,a[1]代表數(shù)組a的第二個元素,以此類推。數(shù)組元素的增減是最基本的數(shù)組元素操作,常用的數(shù)組元素的增減命令見表。案例——數(shù)組元素操作示例任務(wù)4矩陣操作任務(wù)引入小王已經(jīng)了解了數(shù)組的運(yùn)算,但是對于特殊的運(yùn)算,需要涉及矩陣、向量。那么,矩陣、向量、數(shù)組有哪些區(qū)別?如何創(chuàng)建矩陣、向量?知識準(zhǔn)備矩陣運(yùn)算是線性代數(shù)中極其重要的部分,利用NumPy對矩陣除了進(jìn)行一些基本的運(yùn)算,還可以用NumPy求矩陣的逆與轉(zhuǎn)置。一、創(chuàng)建矩陣矩陣只能是二維的,而數(shù)組可以是任意維度的,矩陣和數(shù)組在數(shù)學(xué)運(yùn)算上會有不同的結(jié)構(gòu)。除了維度的不同,矩陣是一個矩陣matrix對象,數(shù)組是ndarray對象。矩陣是由m×n個數(shù)

(i=1,2,…,m;j=1,2,…,n)排成的m行n列數(shù)表,記成1.matrix函數(shù)在numpy中,matrix函數(shù)用于創(chuàng)建矩陣2.mat函數(shù)mat函數(shù)用來創(chuàng)建一個矩陣,該函數(shù)中數(shù)據(jù)可以為字符串以分號(;)分割,或者為列表形式以逗號(,)分割案例——生成矩陣示例二、向量運(yùn)算向量是由

組成的有序數(shù)組,記成1.向量生成由有限個向量所組成的向量組可以構(gòu)成矩陣,如果

是m×n矩陣或數(shù)組,那么A有m個n維行向量;有n個m維列向量。案例——向量生成示例2.向量乘法一個行向量乘以一個列向量稱作向量的內(nèi)積,又叫作點(diǎn)積,結(jié)果是一個數(shù)值;一個列向量乘以一個行向量稱作向量的外積,結(jié)果是一個矩陣。案例——計(jì)算向量點(diǎn)積示例三、統(tǒng)計(jì)函數(shù)Numpy模塊的核心就是基于數(shù)組的運(yùn)算,數(shù)組的運(yùn)算效率是最高的。在統(tǒng)計(jì)分析過程中,經(jīng)常會使用到Numpy模塊的函數(shù).Numpy模塊用于數(shù)理統(tǒng)計(jì)的函數(shù)是較為簡單的,其涉及的數(shù)學(xué)知識是大家都很熟悉的數(shù)據(jù)分析,比如求均值與方差等。在數(shù)學(xué)分析中,在給定范圍內(nèi)(相對極值)或函數(shù)的整個域(全局或絕對極值),函數(shù)的最大值和最小值被統(tǒng)稱為極值(極數(shù))。NumPy中的極值統(tǒng)計(jì)函

溫馨提示

  • 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

提交評論