




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Python數(shù)據(jù)分析概述1熟悉Python數(shù)據(jù)分析的工具安裝Python的Anaconda發(fā)行版掌握JupyterNotebook常用功能目錄認識數(shù)據(jù)分析234廣義的數(shù)據(jù)分析包括狹義數(shù)據(jù)分析和數(shù)據(jù)挖掘。狹義的數(shù)據(jù)分析是指根據(jù)分析目的,采用對比分析、分組分析、交叉分析和回歸分析等分析方法,對收集來的數(shù)據(jù)進行處理與分析,提取有價值的信息,發(fā)揮數(shù)據(jù)的作用,得到一個特征統(tǒng)計量結(jié)果的過程。數(shù)據(jù)挖掘則是從大量的、不完全的、有噪聲的、模糊的、隨機的實際應(yīng)用數(shù)據(jù)中,通過應(yīng)用聚類、分類、回歸和關(guān)聯(lián)規(guī)則等技術(shù),挖掘潛在價值的過程。數(shù)據(jù)分析的概念數(shù)據(jù)分析的流程典型的數(shù)據(jù)分析的流程需求分析:數(shù)據(jù)分析中的需求分析也是數(shù)據(jù)分析環(huán)節(jié)的第一步和最重要的步驟之一,決定了后續(xù)的分析的方向、方法。數(shù)據(jù)獲取:數(shù)據(jù)是數(shù)據(jù)分析工作的基礎(chǔ),是指根據(jù)需求分析的結(jié)果提取,收集數(shù)據(jù)。數(shù)據(jù)預(yù)處理:數(shù)據(jù)預(yù)處理是指對數(shù)據(jù)進行數(shù)據(jù)合并,數(shù)據(jù)清洗,數(shù)據(jù)變換和數(shù)據(jù)標準化,數(shù)據(jù)變換后使得整體數(shù)據(jù)變?yōu)楦蓛粽R,可以直接用于分析建模這一過程的總稱。分析與建模:分析與建模是指通過對比分析、分組分析、交叉分析、回歸分析等分析方法和聚類、分類、關(guān)聯(lián)規(guī)則、智能推薦等模型與算法發(fā)現(xiàn)數(shù)據(jù)中的有價值信息,并得出結(jié)論的過程。模型評價與優(yōu)化:模型評價是指對已經(jīng)建立的一個或多個模型,根據(jù)其模型的類別,使用不同的指標評價其性能優(yōu)劣的過程。部署:部署是指將通過了正式應(yīng)用數(shù)據(jù)分析結(jié)果與結(jié)論應(yīng)用至實際生產(chǎn)系統(tǒng)的過程。數(shù)據(jù)分析的流程典型的數(shù)據(jù)分析的流程主要是客戶的基本數(shù)據(jù)信息進行商業(yè)行為分析,首先界定目標客戶,根據(jù)客戶的需求,目標客戶的性質(zhì),所處行業(yè)的特征以及客戶的經(jīng)濟狀況等基本信息使用統(tǒng)計分析方法和預(yù)測驗證法,分析目標客戶,提高銷售效率。其次了解客戶的采購過程,根據(jù)客戶采購類型、采購性質(zhì)進行分類分析制定不同的營銷策略。最后還可以根據(jù)已有的客戶特征,進行客戶特征分析、客戶忠誠分析、客戶注意力分析、客戶營銷分析和客戶收益分析。了解數(shù)據(jù)分析應(yīng)用場景1.客戶分析產(chǎn)品分析主要是競爭產(chǎn)品分析,通過對競爭產(chǎn)品的分析制定自身產(chǎn)品策略。價格分析又可以分為成本分析和售價分析,成本分析的目的是降低不必要成本,售價分析的目的是制定符合市場的價格。渠道分析目的是指對產(chǎn)品的銷售渠道進行分析,確定最優(yōu)的渠道配比。廣告與促銷分析則能夠結(jié)合客戶分析,實現(xiàn)銷量的提升,利潤的增加。了解數(shù)據(jù)分析應(yīng)用場景2.營銷分析:囊括了產(chǎn)品分析,價格分析,渠道分析,廣告與促銷分析這四類分析。以不同社交媒體渠道生成的內(nèi)容為基礎(chǔ),實現(xiàn)不同社交媒體的用戶分析,訪問分析,互動分析等。同時,還能為情感和輿情監(jiān)督提供豐富的資料。用戶分析主要根據(jù)用戶注冊信息,登錄平臺的時間點和平時發(fā)表的內(nèi)容等用戶數(shù)據(jù),分析用戶個人畫像和行為特征。訪問分析則是通過用戶平時訪問的內(nèi)容,分析用戶的興趣愛好,進而分析潛在的商業(yè)價值?;臃治龈鶕?jù)互相關(guān)注對象的行為預(yù)測該對象未來的某些行為特征。了解數(shù)據(jù)分析應(yīng)用場景3.社交媒體分析新型的病毒防御系統(tǒng)可使用數(shù)據(jù)分析技術(shù),建立潛在攻擊識別分析模型,監(jiān)測大量網(wǎng)絡(luò)活動數(shù)據(jù)和相應(yīng)的訪問行為,識別可能進行入侵的可疑模式,做到未雨綢繆。了解數(shù)據(jù)分析應(yīng)用場景4.網(wǎng)絡(luò)安全通過物聯(lián)網(wǎng)技術(shù)能夠收集和分析設(shè)備上的數(shù)據(jù)流,包括連續(xù)用電、零部件溫度、環(huán)境濕度和污染物顆粒等無數(shù)潛在特征,建立設(shè)備管理模型,從而預(yù)測設(shè)備故障,合理安排預(yù)防性的維護,以確保設(shè)備正常作業(yè),降低因設(shè)備故障帶來的安全風(fēng)險。了解數(shù)據(jù)分析應(yīng)用場景5.設(shè)備管理
RPythonMATLAB語言學(xué)習(xí)難易程度入門難度低入門難度一般入門難度一般使用場景數(shù)據(jù)分析,數(shù)據(jù)挖掘,機器學(xué)習(xí),數(shù)據(jù)可視化等。數(shù)據(jù)分析,機器學(xué)習(xí),矩陣運算,科學(xué)數(shù)據(jù)可視化,數(shù)字圖像處理,web應(yīng)用,網(wǎng)絡(luò)爬蟲,系統(tǒng)運維等。矩陣計算,數(shù)值分析,科學(xué)數(shù)據(jù)可視化,機器學(xué)習(xí),符號計算,數(shù)字圖像處理,數(shù)字信號處理,仿真模擬等。第三方支持擁有大量的Packages,能夠調(diào)用C,C++,F(xiàn)ortran,Java等其他程序語言。擁有大量的第三方庫,能夠簡便地調(diào)用C,C++,F(xiàn)ortran,Java等其他程序語言。擁有大量專業(yè)的工具箱,在新版本中加入了對C,C++,Java的支持。流行領(lǐng)域工業(yè)界≈學(xué)術(shù)界工業(yè)界>學(xué)術(shù)界工業(yè)界≤學(xué)術(shù)界軟件成本開源免費開源免費商業(yè)收費了解數(shù)據(jù)分析常用工具目前主流的數(shù)據(jù)分析語言有R,Python,MATLAB三種程序語言。物流是物品從供應(yīng)地向接收地的實體流動。通過業(yè)務(wù)系統(tǒng)和GPS定位系統(tǒng)獲得數(shù)據(jù),對于客戶使用數(shù)據(jù)構(gòu)建交通狀況預(yù)測分析模型,有效預(yù)測實時路況、物流狀況、車流量、客流量和貨物吞吐量,進而提前補貨,制定庫存管理策略。了解數(shù)據(jù)分析應(yīng)用場景6.交通物流分析身份信息泄露盜用事件逐年增長,隨之而來的是欺詐行為和交易的增多。公安機關(guān),各大金融機構(gòu),電信部門可利用用戶基本信息,用戶交易信息,用戶通話短信信息等數(shù)據(jù),識別可能發(fā)生的潛在欺詐交易,做到提前預(yù)防未雨綢繆。了解數(shù)據(jù)分析應(yīng)用場景7.欺詐行為檢測安裝Python的Anaconda發(fā)行版掌握JupyterNotebook常用功能目錄341熟悉Python數(shù)據(jù)分析的工具認識數(shù)據(jù)分析2語法簡單精練。對于初學(xué)者來說,比起其他編程語言,Python更容易上手。有很強大的庫。可以只使用Python這一種語言去構(gòu)建以數(shù)據(jù)為中心的應(yīng)用程序。功能強大。Python是一個混合體,豐富的工具集使它介于傳統(tǒng)的腳本語言和系統(tǒng)語言之間。Python不僅具備所有腳本語言簡單和易用的特點,還提供了編譯語言所具有的高級軟件工程工具。不僅適用于研究和原型構(gòu)建,同時也適用于構(gòu)建生產(chǎn)系統(tǒng)。研究人員和工程技術(shù)人員使用同一種編程工具,會給企業(yè)帶來非常顯著的組織效益,并降低企業(yè)的運營成本。Python是一門膠水語言。Python程序能夠以多種方式輕易地與其他語言的組件“粘接”在一起。了解Python數(shù)據(jù)分析的優(yōu)勢Python數(shù)據(jù)分析主要包含以下5個方面優(yōu)勢是一個增強的Pythonshell,目的是提高編寫、測試、調(diào)試Python代碼的速度。主要用于交互式數(shù)據(jù)并行處理,是分布式計算的基礎(chǔ)架構(gòu)。提供了一個類似于Mathematica的HTML筆記本,一個基于Qt框架的GUI控制臺,具有繪圖、多行編輯以及語法高亮顯示等功能。了解Python數(shù)據(jù)分析常用類庫1.IPython——科學(xué)計算標準工具集的組成部分快速高效的多維數(shù)組對象ndarray。對數(shù)組執(zhí)行元素級的計算以及直接對數(shù)組執(zhí)行數(shù)學(xué)運算的函數(shù)。讀寫硬盤上基于數(shù)組的數(shù)據(jù)集的工具。線性代數(shù)運算、傅里葉變換,以及隨機數(shù)生成的功能。將C、C++、Fortran代碼集成到Python的工具。了解Python數(shù)據(jù)分析常用類庫2.NumPy(NumericalPython)——
Python科學(xué)計算的基礎(chǔ)包SciPy
主要包含了8個模塊,不同的子模塊有不同的應(yīng)用,如插值、積分、優(yōu)化、圖像處理和特殊函數(shù)等。egrate
數(shù)值積分例程和微分方程求解器scipy.linalg
擴展了由numpy.linalg
提供的線性代數(shù)例程和矩陣分解功能scipy.optimize
函數(shù)優(yōu)化器(最小化器)以及根查找算法scipy.signal
信號處理工具scipy.sparse
稀疏矩陣和稀疏線性系統(tǒng)求解器scipy.special
SPECFUN(這是一個實現(xiàn)了許多常用數(shù)學(xué)函數(shù)的Fortran庫)的包裝器scipy.stats
檢驗連續(xù)和離散概率分布、各種統(tǒng)計檢驗方法,以及更好的描述統(tǒng)計法scipy.weave
利用內(nèi)聯(lián)C++代碼加速數(shù)組計算的工具了解Python數(shù)據(jù)分析常用類庫3.SciPy——專門解決科學(xué)計算中各種標準問題域的模塊的集合提供了一系列能夠快速、便捷地處理結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)和函數(shù)。高性能的數(shù)組計算功能以及電子表格和關(guān)系型數(shù)據(jù)庫(如SQL)靈活的數(shù)據(jù)處理功能。復(fù)雜精細的索引功能,以便便捷地完成重塑、切片和切塊、聚合及選取數(shù)據(jù)子集等操作。了解Python數(shù)據(jù)分析常用類庫4.Pandas——數(shù)據(jù)分析核心庫Python的2D繪圖庫,非常適合創(chuàng)建出版物上用的圖表。操作比較容易,只需幾行代碼即可生成直方圖、功率譜圖、條形圖、錯誤圖和散點圖等圖形。提供了pylab的模塊,其中包括了NumPy和pyplot中許多常用的函數(shù),方便用戶快速進行計算和繪圖。交互式的數(shù)據(jù)繪圖環(huán)境,繪制的圖表也是交互式的。了解Python數(shù)據(jù)分析常用類庫5.Matplotlib——繪制數(shù)據(jù)圖表的Python庫簡單有效,可以供用戶在各種環(huán)境下重復(fù)使用。封裝了一些常用的算法方法?;灸K主要有數(shù)據(jù)預(yù)處理、模型選擇、分類、聚類、數(shù)據(jù)降維和回歸6個,在數(shù)據(jù)量不大的情況下,scikit-learn可以解決大部分問題。了解Python數(shù)據(jù)分析常用類庫6.scikit-learn——數(shù)據(jù)挖掘和數(shù)據(jù)分析工具提供高級的代碼編輯、交互測試和調(diào)試等特性。包含數(shù)值計算環(huán)境。可用于將調(diào)試控制臺直接集成到圖形用戶界面的布局中。模仿MATLAB的“工作空間”,可以很方便地觀察和修改數(shù)組的值。了解Python數(shù)據(jù)分析常用類庫7.Spyder——交互式Python語言開發(fā)環(huán)境掌握JupyterNotebook常用功能目錄41認識數(shù)據(jù)分析安裝Python的Anaconda發(fā)行版3熟悉Python數(shù)據(jù)分析的工具2預(yù)裝了大量常用Packages。完全開源和免費。額外的加速和優(yōu)化是收費的,但對于學(xué)術(shù)用途,可以申請免費的License。對全平臺和幾乎所有Python版本支持。了解Python的Anaconda發(fā)行版Anaconda安裝包——“next”——“Iagree”——“AllUsers(requiresadminprivileges)”——選擇安裝路徑——“Install”——“finish”。在Windows系統(tǒng)上安裝Anaconda安裝流程目錄1認識數(shù)據(jù)分析熟悉Python數(shù)據(jù)分析的工具2安裝Python的Anaconda發(fā)行版3掌握JupyterNotebook常用功能4掌握JupyterNotebook的基本功能打開并新建一個Notebook打開JupyterNotebook“TextFile”為純文本型“Folder”為文件夾“Python3”表示Python運行腳本選擇”Python3”選項,進入Python腳本編輯界面,Notebook文檔由一系列單元(Cell)構(gòu)成,主要有兩種形式的單元。掌握JupyterNotebook的基本功能JupyterNotebook的界面及其構(gòu)成代碼單元。這里是讀者編寫代碼的地方。Markdown單元。在這里對文本進行編輯。編輯模式:用于編輯文本和代碼。掌握JupyterNotebook的基本功能編輯界面命令模式:用于執(zhí)行鍵盤輸入的快捷命令?!癊sc”鍵:進入命令模式“Y”鍵:切換到代碼單元“M”鍵:切換到Markdown單元“B”鍵:在本單元的下方增加一單元“H”鍵:查看所有快捷命令“Shift+Enter”組合鍵:運行代碼掌握JupyterNotebook的基本功能快捷鍵Markdown是一種可以使用普通文本編輯器編寫的標記語言,通過簡單的標記語法,它可以使普通文本內(nèi)容具有一定的格式。標題:標題是標明文章和作品等內(nèi)容的簡短語句。一個“#”字符代表一級標題,以此類推。掌握JupyterNotebook的高級功能1.Markdown列表:列表是一種由數(shù)據(jù)項構(gòu)成的有限序列,即按照一定的線性順序排列而成的數(shù)據(jù)項的集合。對于無序列表,使用星號、加號或者減號作為列表標記對于有序列表,則是使用數(shù)字“,”“(一個空格)”。掌握JupyterNotebook的高級功能1.Markdown加粗/斜體:前后有兩個星號或下劃線表示加粗,前后有3個星號或下劃線表示斜體。掌握JupyterNotebook的高級功能1.Markdown表格:代碼的第一行表示表頭,第二行分隔表頭和主體部分,從第三行開始,每一行代表一個表格行;列與列之間用符號“|”隔開,表格每一行的兩邊也要有符號“|”。掌握JupyterNotebook的高級功能1.Markdown數(shù)學(xué)公式編輯:LaTeX是寫科研論文的必備工具,Markdown單元中也可以使用LaTeX來插入數(shù)學(xué)公式。在文本行中插入數(shù)學(xué)公式,應(yīng)在公式前后分別加上一個“$”符號如果要插入一個數(shù)學(xué)區(qū)塊,則在公式前后分別加上兩個“$$”符號。掌握JupyterNotebook的高級功能1.MarkdownNotebook還有一個強大的特性,就是導(dǎo)出功能??梢詫otebook導(dǎo)出為多種格式,如HTML、Markdown、reST、PDF(通過LaTeX)等格式。導(dǎo)出功能可通過選擇“File”→“Downloadas”級聯(lián)菜單中的命令實現(xiàn)。掌握JupyterNotebook的高級功能2.導(dǎo)出功能NumPy
數(shù)值計算基礎(chǔ)1掌握NumPy
矩陣與通用函數(shù)利用NumPy
進行統(tǒng)計分析目錄掌握NumPy
數(shù)組對象ndarray23
屬性說明ndim返回int。表示數(shù)組的維數(shù)shape返回tuple。表示數(shù)組的尺寸,對于n行m列的矩陣,形狀為(n,m)size返回int。表示數(shù)組的元素總數(shù),等于數(shù)組形狀的乘積dtype返回data-type。描述數(shù)組中元素的類型itemsize返回int。表示數(shù)組的每個元素的大?。ㄒ宰止?jié)為單位)。創(chuàng)建數(shù)組對象1.數(shù)組屬性:ndarray(數(shù)組)是存儲單一數(shù)據(jù)類型的多維數(shù)組。參數(shù)名稱說明object接收array。表示想要創(chuàng)建的數(shù)組。無默認。dtype接收data-type。表示數(shù)組所需的數(shù)據(jù)類型。如果未給定,則選擇保存對象所需的最小類型。默認為None。ndmin接收int。指定生成數(shù)組應(yīng)該具有的最小維數(shù)。默認為None。創(chuàng)建數(shù)組對象2.數(shù)組創(chuàng)建numpy.array(object,dtype=None,copy=True,order='K',subok=False,ndmin=0)In[1]:importnumpyasnp
#導(dǎo)入NumPy庫arr1=np.array([1,2,3,4])#創(chuàng)建一維數(shù)組print('創(chuàng)建的數(shù)組為:',arr1)Out[1]:創(chuàng)建的數(shù)組為:[1234]In[2]:arr2=np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]])#創(chuàng)建二維數(shù)組print('創(chuàng)建的數(shù)組為:\n',arr2)Out[2]:創(chuàng)建的數(shù)組為:[[1234][4567][78910]]In[3]:print('數(shù)組維度為:',arr2.shape)#查看數(shù)組結(jié)構(gòu)Out[3]:數(shù)組維度為:(3,4)創(chuàng)建數(shù)組對象創(chuàng)建數(shù)組并查看數(shù)組屬性In[4]:print('數(shù)組維度為:',arr2.dtype)#查看數(shù)組類型Out[4]:數(shù)組維度為:int32In[5]:print('數(shù)組元素個數(shù)為:',arr2.size)#查看數(shù)組元素個數(shù)Out[5]:數(shù)組元素個數(shù)為:12In[6]:print('數(shù)組每個元素大小為:',arr2.itemsize)#查看數(shù)組每個元素大小Out[6]:數(shù)組每個元素大小為:4創(chuàng)建數(shù)組對象重新設(shè)置數(shù)組的shape屬性In[7]:arr2.shape=4,3#重新設(shè)置shapeprint('重新設(shè)置shape后的arr2為:',arr2)Out[7]:重新設(shè)置shape維度后的arr2為:[[123][445][677][8910]]使用arange函數(shù)創(chuàng)建數(shù)組In[8]:print('使用arange函數(shù)創(chuàng)建的數(shù)組為:\n',np.arange(0,1,0.1))Out[8]:使用arange函數(shù)創(chuàng)建的數(shù)組為:[0.0.10.20.30.40.50.60.70.80.9]創(chuàng)建數(shù)組對象使用linspace函數(shù)創(chuàng)建數(shù)組In[9]:print('使用linspace函數(shù)創(chuàng)建的數(shù)組為:',np.linspace(0,1,12))Out[9]:使用linspace函數(shù)創(chuàng)建的數(shù)組為:[0.0.09090909…1.]使用logspace函數(shù)創(chuàng)建等比數(shù)列In[10]:print('使用logspace函數(shù)創(chuàng)建的數(shù)組為:',np.logspace(0,2,20))Out[10]:使用logspace函數(shù)創(chuàng)建的數(shù)組為:[1.1.274274991.62377674...,61.5848211178.47599704100.]創(chuàng)建數(shù)組對象使用zeros函數(shù)創(chuàng)建數(shù)組In[11]:print('使用zeros函數(shù)創(chuàng)建的數(shù)組為:',np.zeros((2,3)))Out[11]:使用zeros函數(shù)創(chuàng)建的數(shù)組為:
[[0.0.0.][0.0.0.]]使用eye函數(shù)創(chuàng)建數(shù)組In[12]:print('使用eye函數(shù)創(chuàng)建的數(shù)組為:',np.eye(3))Out[12]:使用eye函數(shù)創(chuàng)建的數(shù)組為:
[[1.0.0.][0.1.0.][0.0.1.]]創(chuàng)建數(shù)組對象使用diag函數(shù)創(chuàng)建數(shù)組In[13]:print('使用diag函數(shù)創(chuàng)建的數(shù)組為:',np.diag([1,2,3,4]))Out[13]:使用diag函數(shù)創(chuàng)建的數(shù)組為:
[[1000][0200][0030][0004]]使用ones函數(shù)創(chuàng)建數(shù)組In[14]:print('使用ones函數(shù)創(chuàng)建的數(shù)組為:',np.ones((5,3)))Out[14]:使用ones函數(shù)創(chuàng)建的數(shù)組為:
[[1.1.1.][1.1.1.][1.1.1.][1.1.1.][1.1.1.]]NumPy基本數(shù)據(jù)類型與其取值范圍(只展示一部分)創(chuàng)建數(shù)組對象3.數(shù)組數(shù)據(jù)類型類型描述bool用一位存儲的布爾類型(值為TRUE或FALSE)inti由所在平臺決定其精度的整數(shù)(一般為int32或int64)int8整數(shù),范圍為?128至127int16整數(shù),范圍為?32768至32767int32…………創(chuàng)建數(shù)組對象數(shù)組數(shù)據(jù)類型轉(zhuǎn)換In[15]:print('轉(zhuǎn)換結(jié)果為:',np.float64(42))#整型轉(zhuǎn)換為浮點型Out[15]:轉(zhuǎn)換結(jié)果為:42.0In[16]:print('轉(zhuǎn)換結(jié)果為:',8(42.0))#浮點型轉(zhuǎn)換為整型Out[16]:轉(zhuǎn)換結(jié)果為:42In[17]:print('轉(zhuǎn)換結(jié)果為:',np.bool(42))#整型轉(zhuǎn)換為布爾型Out[17]:轉(zhuǎn)換結(jié)果為:TrueIn[18]:print('轉(zhuǎn)換結(jié)果為:',np.bool(0))#整型轉(zhuǎn)換為布爾型Out[18]:轉(zhuǎn)換結(jié)果為:FalseIn[19]:print('轉(zhuǎn)換結(jié)果為:',np.float(True))#布爾型轉(zhuǎn)換為浮點型Out[19]:轉(zhuǎn)換結(jié)果為:1.0In[20]:print('轉(zhuǎn)換結(jié)果為:',np.float(False))#布爾型轉(zhuǎn)換為浮點型Out[20]:轉(zhuǎn)換結(jié)果為:0.0創(chuàng)建數(shù)組對象創(chuàng)建一個存儲餐飲企業(yè)庫存信息的數(shù)據(jù)類型。其中,用一個長度為40個字符的字符串來記錄商品的名稱,用一個64位的整數(shù)來記錄商品的庫存數(shù)量,最后用一個64位的單精度浮點數(shù)來記錄商品的價格,具體步驟如下。In[21]:df=np.dtype([("name",np.str_,40),("numitems",64),("price",np.float64)])print('數(shù)據(jù)類型為:',df)Out[21]:數(shù)據(jù)類型為:[('name','<U40'),('numitems','<i8'),('price','<f8')]創(chuàng)建數(shù)據(jù)類型創(chuàng)建數(shù)組對象查看數(shù)據(jù)類型,可以直接查看或者使用numpy.dtype函數(shù)查看。In[22]:print('數(shù)據(jù)類型為:',df["name"])Out[22]:數(shù)據(jù)類型為:<U40In[23]:print('數(shù)據(jù)類型為:',np.dtype(df["name"]))Out[23]:數(shù)據(jù)類型為:<U40創(chuàng)建數(shù)組對象在使用array函數(shù)創(chuàng)建數(shù)組時,數(shù)組的數(shù)據(jù)類型默認是浮點型。自定義數(shù)組數(shù)據(jù),則可以預(yù)先指定數(shù)據(jù)類型In[24]:itemz=np.array([("tomatoes",42,4.14),("cabbages",13,1.72)],dtype=df)print('自定義數(shù)據(jù)為:',itemz)Out[24]:自定義數(shù)據(jù)為:[('tomatoes',42,4.14)('cabbages',13,1.72)]生成隨機數(shù)無約束條件下生成隨機數(shù)In[25]:print('生成的隨機數(shù)組為:',np.random.random(100))Out[25]:生成的隨機數(shù)組為:[0.153431840.515815850.07228451...0.244183160.925105450.57507965]生成服從均勻分布的隨機數(shù)In[26]:print('生成的隨機數(shù)組為:\n',np.random.rand(10,5))Out[26]:生成的隨機數(shù)組為:[[0.398304910.940113940.599749230.444538940.65451838]...[0.14685440.829729890.580111150.451576670.32422895]]生成隨機數(shù)生成服從正態(tài)分布的隨機數(shù)In[27]:print('生成的隨機數(shù)組為:\n',np.random.randn(10,5))Out[27]:生成的隨機數(shù)組為:[[-0.605719680.39034908-1.633155130.02783885-1.84139301]...,[-0.275004871.417112620.66359670.35486644-0.26700703]]生成給定上下范圍的隨機數(shù),如創(chuàng)建一個最小值不低于2、最大值不高于10的2行5列數(shù)組In[28]:print('生成的隨機數(shù)組為:',np.random.randint(2,10,size=[2,5]))Out[28]:生成的隨機數(shù)組為:[[66668][96684]]函數(shù)說明seed確定隨機數(shù)生成器的種子。permutation返回一個序列的隨機排列或返回一個隨機排列的范圍。shuffle對一個序列進行隨機排序。binomial產(chǎn)生二項分布的隨機數(shù)。normal產(chǎn)生正態(tài)(高斯)分布的隨機數(shù)。beta產(chǎn)生beta分布的隨機數(shù)。chisquare產(chǎn)生卡方分布的隨機數(shù)。gamma產(chǎn)生gamma分布的隨機數(shù)。uniform產(chǎn)生在[0,1)中均勻分布的隨機數(shù)。生成隨機數(shù)random模塊常用隨機數(shù)生成函數(shù)In[29]:arr=np.arange(10)print('索引結(jié)果為:',arr[5])#用整數(shù)作為下標可以獲取數(shù)組中的某個元素Out[29]:索引結(jié)果為:5In[30]:print('索引結(jié)果為:',arr[3:5])#用范圍作為下標獲取數(shù)組的一個切片,包括arr[3]不包括arr[5]Out[30]:索引結(jié)果為:[34]In[31]:print('索引結(jié)果為:',arr[:5])#省略開始下標,表示從arr[0]開始Out[31]:索引結(jié)果為:[01234]In[32]:print('索引結(jié)果為:',arr[-1])#下標可以使用負數(shù),-1表示從數(shù)組后往前數(shù)的第一個元素Out[32]:索引結(jié)果為:9通過索引訪問數(shù)組1.一維數(shù)組的索引In[33]:arr[2:4]=100,101print('索引結(jié)果為:',arr)#下標還可以用來修改元素的值Out[33]:索引結(jié)果為:[01100101456789]In[34]:#范圍中的第三個參數(shù)表示步長,2表示隔一個元素取一個元素print('索引結(jié)果為:',arr[1:-1:2])Out[34]:索引結(jié)果為:[110157]In[35]:print('索引結(jié)果為:',arr[5:1:-2])#步長為負數(shù)時,開始下標必須大于結(jié)束下標Out[35]:索引結(jié)果為:[5101]通過索引訪問數(shù)組1.一維數(shù)組的索引續(xù)表In[36]:arr=np.array([[1,2,3,4,5],[4,5,6,7,8],[7,8,9,10,11]])print('創(chuàng)建的二維數(shù)組為:',arr)Out[36]:創(chuàng)建的二維數(shù)組為:[[12345][45678][7891011]]In[37]:print('索引結(jié)果為:',arr[0,3:5])#索引第0行中第3和4列的元素Out[37]:索引結(jié)果為:[45]通過索引訪問數(shù)組2.多維數(shù)組的索引In[38]:#索引第2和3行中第3~5列的元素print('索引結(jié)果為:',arr[1:,2:])Out[38]:索引結(jié)果為:[[678][91011]]In[39]:print('索引結(jié)果為:',arr[:,2])#索引第2列的元素Out[39]:索引結(jié)果為:[369]通過索引訪問數(shù)組2.多維數(shù)組的索引續(xù)表通過索引訪問數(shù)組2.多維數(shù)組的索引(使用整數(shù)和布爾值索引訪問數(shù)據(jù))In[40]:#從兩個序列的對應(yīng)位置取出兩個整數(shù)來組成下標:arr[0,1],arr[1,2],arr[2,3]print('索引結(jié)果為:',arr[[(0,1,2),(1,2,3)]])Out[40]:索引結(jié)果為:[2610]In[41]:print('索引結(jié)果為:',arr[1:,(0,2,3)])#索引第2、3行中第0、2、3列的元素Out[41]:索引結(jié)果為:[[467][7910]]In[42]:mask=np.array([1,0,1],dtype=np.bool)#mask是一個布爾數(shù)組,它索引第1、3行中第2列的元素print('索引結(jié)果為:',arr[mask,2])Out[42]:索引結(jié)果為:[39]In[43]:arr=np.arange(12)#創(chuàng)建一維數(shù)組print('創(chuàng)建的一維數(shù)組為:',arr)Out[43]:創(chuàng)建的一維數(shù)組為:[01234567891011]In[44]:print('新的一維數(shù)組為:',arr.reshape(3,4))#設(shè)置數(shù)組的形狀Out[44]:新的一維數(shù)組為:[[0123][4567][891011]]In[45]:print('數(shù)組維度為:',arr.reshape(3,4).ndim)#查看數(shù)組維度Out[45]:數(shù)組維度為:2變換數(shù)組的形態(tài)改變數(shù)組形狀I(lǐng)n[46]:arr=np.arange(12).reshape(3,4)print('創(chuàng)建的二維數(shù)組為:',arr)Out[46]:創(chuàng)建的二維數(shù)組為:
[[0123][4567][891011]]In[47]:print('數(shù)組展平后為:',arr.ravel())Out[47]:數(shù)組展平后為:[01234567891011]變換數(shù)組的形態(tài)使用ravel函數(shù)展平數(shù)組In[48]:print('數(shù)組展平為:',arr.flatten())#橫向展平Out[48]:數(shù)組展平為:[01234567891011]In[49]:print('數(shù)組展平為:',arr.flatten('F'))#縱向展平Out[49]:數(shù)組展平為:[04815926103711]變換數(shù)組的形態(tài)使用flatten函數(shù)展平數(shù)組使用hstack函數(shù)實現(xiàn)數(shù)組橫向組合:np.hstack((arr1,arr2))使用vstack函數(shù)實現(xiàn)數(shù)組縱向組合:np.vstack((arr1,arr2))使用concatenate函數(shù)實現(xiàn)數(shù)組橫向組合:np.concatenate((arr1,arr2),axis=1))使用concatenate函數(shù)實現(xiàn)數(shù)組縱向組合:np.concatenate((arr1,arr2),axis=0))變換數(shù)組的形態(tài)組合數(shù)組使用hsplit函數(shù)實現(xiàn)數(shù)組橫向分割:
np.hsplit(arr1,2)使用vsplit函數(shù)實現(xiàn)數(shù)組縱向分割:
np.vsplit(arr,2)使用split函數(shù)實現(xiàn)數(shù)組橫向分割:
np.split(arr,2,axis=1)使用split函數(shù)實現(xiàn)數(shù)組縱向分割:np.split(arr,2,axis=0)變換數(shù)組的形態(tài)切割數(shù)組1掌握NumPy
矩陣與通用函數(shù)利用NumPy
進行統(tǒng)計分析目錄掌握NumPy
數(shù)組對象ndarray23使用mat函數(shù)創(chuàng)建矩陣:matr1=np.mat("123;456;789")使用matrix函數(shù)創(chuàng)建矩陣:matr2=np.matrix([[123],[456],[789]])使用bmat函數(shù)合成矩陣:np.bmat("arr1arr2;arr1arr2")創(chuàng)建NumPy矩陣創(chuàng)建與組合矩陣矩陣與數(shù)相乘:matr1*3矩陣相加減:matr1±m(xù)atr2矩陣相乘:matr1*matr2矩陣對應(yīng)元素相乘:np.multiply(matr1,matr2)矩陣特有屬性:創(chuàng)建NumPy矩陣矩陣的運算屬性說明T返回自身的轉(zhuǎn)置H返回自身的共軛轉(zhuǎn)置I返回自身的逆矩陣A返回自身數(shù)據(jù)的2維數(shù)組的一個視圖四則運算:加(+)、減(-)、乘(*)、除(/)、冪(**)。數(shù)組間的四則運算表示對每個數(shù)組中的元素分別進行四則運算,所以形狀必須相同。比較運算:>、<、==、>=、<=、!=。比較運算返回的結(jié)果是一個布爾數(shù)組,每個元素為每個數(shù)組對應(yīng)元素的比較結(jié)果。邏輯運算:np.any函數(shù)表示邏輯“or”,np.all函數(shù)表示邏輯“and”。運算結(jié)果返回布爾值。認識ufunc函數(shù)全稱通用函數(shù)(universalfunction),是一種能夠?qū)?shù)組中所有元素進行操作的函數(shù)。廣播(broadcasting)是指不同形狀的數(shù)組之間執(zhí)行算術(shù)運算的方式。需要遵循4個原則。讓所有輸入數(shù)組都向其中shape最長的數(shù)組看齊,shape中不足的部分都通過在前面加1補齊。輸出數(shù)組的shape是輸入數(shù)組shape的各個軸上的最大值。如果輸入數(shù)組的某個軸和輸出數(shù)組的對應(yīng)軸的長度相同或者其長度為1時,這個數(shù)組能夠用來計算,否則出錯。當輸入數(shù)組的某個軸的
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)蒙古自治區(qū)低風(fēng)險食品生產(chǎn)許可告知承諾管理辦法
- 中醫(yī)藥康養(yǎng)旅游示范基地建設(shè)項目與智慧旅游融合發(fā)展研究報告
- 建筑行業(yè)安全管理信息化技術(shù)應(yīng)用與創(chuàng)新報告
- 醫(yī)療行業(yè)人才流動機制改革與培養(yǎng)模式創(chuàng)新研究報告
- 歷史文化街區(qū)保護與開發(fā):城市更新與歷史街區(qū)特色發(fā)展路徑報告
- 互聯(lián)網(wǎng)+醫(yī)療2025年在線服務(wù)平臺政策環(huán)境分析評估報告
- 軟件開發(fā)公司運營管理方案
- 人工智能+快遞融合發(fā)展的策略及實施路徑
- 中國全自動輪轉(zhuǎn)開槽切角機行業(yè)市場規(guī)模及投資前景預(yù)測分析報告
- 傳統(tǒng)食品產(chǎn)業(yè)2025年技術(shù)改造食品生產(chǎn)智能化生產(chǎn)線集成解決方案報告
- 保安禮儀與溝通技巧培訓(xùn)
- GB/T 30893-2024雨生紅球藻粉
- 超市管理系統(tǒng)數(shù)據(jù)流程圖
- 民法典與生活同行宣傳手冊
- 登高車高空作業(yè)施工方案
- 內(nèi)控評價收集資料清單
- 政務(wù)安全托管服務(wù)(GMSS) 實踐指南 2024
- 2024市場營銷知識競賽題庫及答案(共169題)
- 2024版抗腫瘤藥物相關(guān)肝損傷診療指南解讀
- 2024-2030年中國核主泵市場專題研究及市場前景預(yù)測評估報告
- 北京西城區(qū)2023年初中學(xué)業(yè)水平考試信息科技試卷真題(含答案詳解)
評論
0/150
提交評論