




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
項目三
數組計算庫NumPy任務1數組的創建任務2特殊數組任務3數組運算任務4矩陣操作任務1數組的創建任務引入小王分到的項目主要是統計運算,由于沒有數據,為了運行程序,小王定義數組數據進行程序演示。那么數組是什么?如何創建?知識準備數組(Array)是有序的元素序列,向量、矩陣是線性代數中定義的一個數學概念。數組是計算機上的概念,從外觀和數據結構上看,二維數組和數學中的矩陣沒有區別,一維數組和數學中的向量沒有區別。向量、矩陣是特殊的數組,三者關系如圖所示。一、數組數據類型Numpy支持的數據類型比Python內置的類型要多,基本上可以和C語言的數據類型對應上,其中部分類型對應為Python內置的類型,表列舉了常用NumPy基本類型。續案例——定義數組類型案例——定義輸入數組數據類型二、創建數組在NumPy中,每一個線性的數組稱為是一個軸(axis),也就是維度(dimensions)。根據數組中元素的維度將數組分為一維數組、二維數組、多維數組。1.array函數Numpy使用array函數通過直接定義數據創建數組,返回N維數組對象(即ndarray)型2.一維數組一維數組是最簡單的數組,數組只有一個下標,一維數組相當于向量。案例——創建一維數組(1)arange函數arange通過直接定義數據元素個數,而不是定義數據元素來創建數組。案例——創建一個從0開始,到10結束,增量為2的數組x(2)linspace函數linspace通過直接定義數據元素個數,而不是數據元素直接的增量來創建一維數組(向量)。案例——創建一個從0開始,到10結束,包含6個數據元素的向量x(3)函數logspace與linspace一樣,logspace也通過直接定義向量元素個數,而不是數據元素之間的增量來創建一個對數分隔的數組。3.二維數組二維數組在概念上是二維的,即是說其下標在兩個方向上變化,下標變量在數組中的位置也處于一個平面之中。二維數組相當于矩陣,所以矩陣是數組的子集。案例——創建二維數組4.多維數組在Numpy中,一個陣列如果具有兩個以上的維度則被稱為多維數組。在Numpy中的多維數組是正常的兩維矩陣的延伸。下一節介紹的ones(),zeros()或rand()函數可直接創建多維數組。案例——三維數組生成示例三、創建新數組Numpy除了可以直接創建數組的函數外,還提供了從已有數組的基礎上創建數組的函數。1.asarray函數numpy.asarray函數類似numpy.array,可以用來創建數組2.frombuffer函數numpy.frombuffer用于實現動態數組,接受buffer輸入參數,以流的形式讀入轉化成ndarray對象3.fromiter函數numpy.fromiter函數從可迭代對象中建立ndarray對象,返回一維數組4.初始化數組函數數組的初始化就是對其賦初值,也就是向這個數組中裝入有意義的數據,在程序設計匯總初始化很重要。案例——使用不同函數創建數組。四、數組的屬性創建數組后,可以通過設置數組的屬性來實現數組的操作,NumPy的數組中ndarray對象屬性見表。numpy的多維數組不僅僅表示三維,還能表示4、5...維。秩,即軸的數量或維度的數量,兩行三列的數組,元素個數為2×3=6個,秩為2,表示它有兩個維度,第一個維度長度為2,第二個維度長度為3。案例——數組的屬性顯示示例任務2特殊數組任務引入為了演示程序,小王需要定義大量數據,直接輸入數組數據過于繁瑣,那么如何解決這一問題呢?20世紀80年代以來,問題解決或者解決問題已成為國際理科教育的一種潮流。經過調查,發現使用特殊數組可以直接定義指定大小的數組。那么,特殊數組有哪些?知識準備在工程計算以及理論分析中,經常會遇到一些特殊的數組,比如全0數組、單位數組、隨機數組等。對于這些數組,在Numpy中都有相應的命令可以直接生成。下面我們就介紹一些常用的命令。一、數值數組Numpy提供了一系列元素為同一數值的數組函數,下面分別進行介紹。1.空數組在Numpy中,空數組使用empty命令表示2.全零數組在Numpy中,全零數組使用zeros命令表示3.全一數組在Numpy中,全1數組使用ones命令表示、4.數值數組在Numpy中,使用full函數創建數值數組,該數組元素均為指定數值案例——數組生成示例案例——數值數組生成示例二、隨機數組隨機數組,顧名思義,隨機生成,沒有規律,因此每一次生成的隨機數組不同。numpy.random模塊可方便生成隨機數組,返回指定范圍內的一個整數或浮點數。1.0到1內隨機數組rand和random函數生成[0.0,1.0)之間的隨機浮點數數組,size表示數組大小。案例——0到1內隨機數組生成示例案例——生成相同隨機數組2.指定區間隨機數組randint函數用于在指定區間內生成隨機整數數組案例——生成隨機數組示例三、單位數組在numpy中,eye函數創建指定大小的單位數組案例——單位數組生成示例四、概率分布數組概率分布是指用于表述隨機變量取值的概率規律。在自然現象和社會現象中,大量隨機變量都服從或近似服從不同種類的分布.例如,一個地區的男性成年人的身高;測量某零件長度的誤差,海洋波浪的高度,半導體器件中的熱噪聲電流或電壓等,都服從正態分布。在間隔時間內放射出a粒子的數目服從指數分布。在Python中,Numpy模塊的random子模塊中包含一些生成服從指定分布隨機數組的函數。具體的調用格式見表。案例——生成指定分布數組任務3數組運算任務引入小王定義數組后,下一步是進行數組運算。那么,基本的數組運算有哪些,他們是如何實現的?知識準備數組運算是指數組對應元素之間的運算,也稱點運算。矩陣的乘法、乘方和除法有特殊的數學含義,并不是數組對應元素的運算。所以數組乘法、乘方和除法的運算符前特別加了一個點。一、數組數學運算1.基本運算數組的基本運算包括加、減、乘、除、乘方、求逆等。與大家所學的線性代數中的定義是一樣的,相應的運算符為“+”、“-”、“*”、“\”、“**”。案例——數組基本運算示例2.數組點積對于數組a、b,數組a和b的點積計算公式如下:案例——計算一維數組點積示例
廣播的規則如下:如果兩個數組的維度數不相同,那么小維度數組的形狀將會在最左邊補1。如果兩個數組的形狀在任何一個維度上都不匹配,那么數組的形狀會沿著維度為1的維度擴展以匹配另外一個數組的形狀。如果兩個數組的形狀在任何一個維度上都不匹配,并且沒有任何一個維度等于1,會引發異常。關于數組廣播的函數見表。案例——不同形狀數組運算示例Numpy常用的數學運算函數見表。3.數組的索引在Python中,一個數組可以分解為多個數組元素,這些數組元素可以是基本數據類型或是構造類型。數組的索引和切片都是對數組元素的引用。4.索引值索引使用下標數組元素引用的方式見表。案例——數組索引示例5.choice函數除了使用索引和切片輸出數組元素,NumPy
模塊中還提供了choice函數,用于從給定的1維數組中隨機采樣案例——數組元素輸出6.take函數take函數用于沿軸取數組中的元素案例——輸出數組元素二、數組元素運算數組是相同數據類型的元素的集合。數組中的各元素的存儲是有先后順序的,它們在內存中按照這個先后順序連續存放在一起。1.數組排序Numpy的random子模塊提供了兩種數組排序函數,shuffle函數對原數組進行隨機排列;permutation函數返回一個隨機排列的數組。案例——數組排序示例2.遍歷數組遍歷數組是指把數組中的每個數都讀一遍,Python提供了兩種遍歷數組,輸出所有元素的方法。(1)一般情況下,使用for循環遍歷數組元素。案例——使用for循環輸出數組元素。(2)數組迭代NumPy
模塊中的nditer提供了一種靈活訪問一個或者多個數組元素的方式案例——數組輸出示例3.數組元素的增減數組元素用整個數組的名字和它自己在數組中的順序位置來表示。因為數組元素的下表是從0開始,因此索引i表示數組的第i+1個元素。例如,a[0]表示名字為a的數組中的第一個元素,a[1]代表數組a的第二個元素,以此類推。數組元素的增減是最基本的數組元素操作,常用的數組元素的增減命令見表。案例——數組元素操作示例任務4矩陣操作任務引入小王已經了解了數組的運算,但是對于特殊的運算,需要涉及矩陣、向量。那么,矩陣、向量、數組有哪些區別?如何創建矩陣、向量?知識準備矩陣運算是線性代數中極其重要的部分,利用NumPy對矩陣除了進行一些基本的運算,還可以用NumPy求矩陣的逆與轉置。一、創建矩陣矩陣只能是二維的,而數組可以是任意維度的,矩陣和數組在數學運算上會有不同的結構。除了維度的不同,矩陣是一個矩陣matrix對象,數組是ndarray對象。矩陣是由m×n個數
(i=1,2,…,m;j=1,2,…,n)排成的m行n列數表,記成1.matrix函數在numpy中,matrix函數用于創建矩陣2.mat函數mat函數用來創建一個矩陣,該函數中數據可以為字符串以分號(;)分割,或者為列表形式以逗號(,)分割案例——生成矩陣示例二、向量運算向量是由
組成的有序數組,記成1.向量生成由有限個向量所組成的向量組可以構成矩陣,如果
是m×n矩陣或數組,那么A有m個n維行向量;有n個m維列向量。案例——向量生成示例2.向量乘法一個行向量乘以一個列向量稱作向量的內積,又叫作點積,結果是一個數值;一個列向量乘以一個行向量稱作向量的外積,結果是一個矩陣。案例——計算向量點積示例三、統計函數Numpy模塊的核心就是基于數組的運算,數組的運算效率是最高的。在統計分析過程中,經常會使用到Numpy模塊的函數.Numpy模塊用于數理統計的函數是較為簡單的,其涉及的數學知識是大家都很熟悉的數據分析,比如求均值與方差等。在數學分析中,在給定范圍內(相對極值)或函數的整個域(全局或絕對極值),函數的最大值和最小值被統稱為極值(極數)。NumPy中的極值統計函
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車輛租用自駕合同協議
- 木工責任協議書
- 培訓師成長必讀:28本經典教材精要
- 鄉村社區公共設施使用協議
- 《胸部手術后的護理》課件
- 消防水源協議書
- 設計院加班合同協議
- 《缺失的記憶:探索未知為主題的》課件
- 車輛管理協議書范本
- 轉讓移動擺攤車合同協議
- 西部計劃面試題目及答案
- 公文筐的測試題及答案
- 2025靜脈治療規范
- 航道、通航建筑物及航運樞紐大壩運行安全風險辨識評估管控指南
- 《測繪生產成本費用定額》(2025版)
- 第11課《浪花》課件-2024-2025學年統編版語文一年級下冊
- 教師省骨干考試題及答案
- 幼教培訓課件:《幼兒園思維共享的組織與實施》
- 《飼料添加劑》課件
- 中央2024年中國合格評定國家認可中心招聘筆試歷年典型考點(頻考版試卷)附帶答案詳解
- 【公開課】跨學科實踐:制作簡易桿秤(課件)-人教版八年級物理下冊
評論
0/150
提交評論