《人工智能基礎第2版》全套教學課件_第1頁
《人工智能基礎第2版》全套教學課件_第2頁
《人工智能基礎第2版》全套教學課件_第3頁
《人工智能基礎第2版》全套教學課件_第4頁
《人工智能基礎第2版》全套教學課件_第5頁
已閱讀5頁,還剩651頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

人工智能基礎第1章人工智能概述第2章人工智能體驗第3章人工智能編程語言第4章人工智能數(shù)據(jù)處理第5章機器學習第6章深度學習全套可編輯PPT課件第1章人工智能概述

學習目標1.了解人工智能的基本概念和歷史。2.了解人工智能的研究內容。3.熟悉人工智能的常見應用領域。4.熟悉智能計算系統(tǒng)的相關知識。1.1人工智能簡介1.1.1人工智能的基本概念人工智能(ArtificialIntelligence),英文縮寫為AI,自誕生以來就受到廣泛關注。不同學者對于人工智能的定義也不盡相同,目前比較公認的一種定義是:人工智能是研究和開發(fā)用于模擬、延伸和擴展人的智能的理論、方法、技術以及應用系統(tǒng)的一門新的技術科學。人類四次工業(yè)革命的發(fā)展1.1.2人工智能的歷史1.圖靈測試1950年,圖靈(Turing)發(fā)表了一篇題為《計算機與智能》的論文,文中預言了創(chuàng)造出具有真正智能的機器的可能性。由于注意到“智能”這一概念難以確切定義,他提出了著名的圖靈測試(TuringTest):測試者與被測試者(一個人和一臺機器)在隔開的情況下,通過一些裝置(如鍵盤)向被測試者隨意提問,進行多次測試后,如果機器讓平均超過30%的參與者做出誤判,不能辨別出其機器身份,那么這臺機器就通過了測試,并被認為具有人類智能。圖靈1.1.2人工智能的歷史2.達特茅斯會議

1956年,麥卡錫、明斯基、香農、紐厄爾、西蒙、塞弗里奇、所羅門諾夫、羅徹斯特、塞繆爾和莫爾,在美國達特茅斯學院召開了一次為期兩個月的“人工智能夏季研討會”,從不同學科角度探討了人類各種學習和其他智能特征的基礎,以及用機器模擬人類智能等問題,并首次提出人工智能的術語。達特茅斯會議部分當事人于2006年重聚(左起:莫爾、麥卡錫、明斯基、塞弗里奇、所羅門諾夫)1.1.2人工智能的歷史3.人工智能的發(fā)展歷程1.1.3人工智能的學派1.符號主義學派符號主義又稱為邏輯主義、心理學派或計算機學派。符號主義認為人工智能源于數(shù)理邏輯。符號主義學者在1956年首先采用“人工智能”術語,后來又發(fā)展了啟發(fā)式算法、專家系統(tǒng)、知識工程理論與技術,并在20世紀80年代取得重大發(fā)展。符號主義學派代表人物有紐厄爾、西蒙和尼爾遜等。符號主義學派認為人工智能的研究方法應為功能模擬方法,即通過分析人類認知系統(tǒng)所具備的功能和機能,然后用計算機模擬這些功能,實現(xiàn)人工智能。1.1.3人工智能的學派2.連接主義學派連接主義又稱為仿生學派或生理學派。連接主義認為人工智能源于仿生學,特別是對人腦模型的研究?;羝辗茽柕略?982年和1984年發(fā)表兩篇重要論文,提出用硬件模擬神經(jīng)網(wǎng)絡。1986年,魯梅爾哈特等人提出多層網(wǎng)絡中的反向傳播(BP)算法,使多層感知機的理論模型有所突破。從2010年開始,神經(jīng)網(wǎng)絡、深度學習成為人工智能行業(yè)主導,標志著AI經(jīng)過短暫消沉期后徹底復蘇,如今最熱的AI概念均出自“連接主義”學派。1.1.3人工智能的學派3.行為主義學派行為主義又稱為進化主義或控制論學派。行為主義認為人工智能源于控制論。維納和麥克洛克等人提出的控制論和自組織系統(tǒng)以及錢學森等人提出的工程控制論和生物控制論,影響了許多領域。行為主義是20世紀末才以人工智能新學派的面孔出現(xiàn)的,引起許多人興趣。行為主義學派的代表作品首推布魯克斯的6足行走機器人,它被看作新一代的“控制論動物”,是一個基于感知-動作模式模擬昆蟲行為的控制系統(tǒng)。1.1.4習題與實踐1.簡答題(1)請簡述什么是人工智能。(2)請簡述人工智能的發(fā)展歷史。(3)三大人工智能學派的認知觀分別是什么?他們各自的代表性研究成果是什么?2.思考題(1)有學者認為達特茅斯會議標志著人工智能的誕生,因此麥卡錫才是真正的“人工智能之父”,你怎么看待這個問題?(2)隨著人工智能技術的不斷發(fā)展,你覺得人工智能在未來有可能超越人類智能嗎?(3)人工智能與物聯(lián)網(wǎng)、大數(shù)據(jù)、虛擬現(xiàn)實等技術如何互相促進?1.2人工智能研究內容1.2.1知識工程知識工程(KnowledgeEngineering)是在計算機上建立專家系統(tǒng)的技術。圖靈獎獲得者、知識工程的建立者費根鮑姆(Feigenbaum)將知識工程定義為:將知識集成到計算機系統(tǒng)從而完成只有特定領域專家才能完成的復雜任務。知識工程包括了知識表示(knowledgerepresentation)、知識獲?。╧nowledgeacquisition)、知識推理(knowledgereasoning)、知識集成(knowledgeintegration)和知識存儲(knowledgestorage)等多個活動。費根鮑姆1.2.2機器感知機器感知(MachineCognition)是一連串復雜程序所組成的大規(guī)模信息處理系統(tǒng),信息通常由很多常規(guī)傳感器采集,經(jīng)過這些程序的處理后,會得到一些非基本感官能得到的結果。機器感知就是使機器具有類似人的感知能力,其中以機器視覺、機器聽覺、機器觸摸和機器氣味為主。常見機器感知傳感器1.2.3機器思維機器思維(MachineThinking)是指利用機器感知得來的外部信息、認知模型、知識表示和推理來有目標的處理感知信息和智能系統(tǒng)內部信息的過程,從而針對特定場景給出合適的判斷,制定合適的策略。目前對于機器思維的研究主要集中在以下幾方面:知識表示,特別是各種不確定性和不完全知識的表示;知識組織、積累和管理技術;知識推理,特別是各種不確定性推理、歸納推理和非經(jīng)典推理等;各種啟發(fā)式搜索和控制策略;人腦結構和神經(jīng)網(wǎng)絡的工作機制。1.2.4機器學習1.機器學習的發(fā)展第一階段從20世紀50年代中期到70年代中期,主要用各種符號來表示機器語言,研究將各個領域的知識植入到系統(tǒng)里,目的是通過機器模擬人類學習的過程。第二階段從20世紀70年代中期到80年代初,在此期間,人們從學習單個概念擴展到學習多個概念,探索不同的學習策略和學習方法,且在本階段已開始把學習系統(tǒng)與各種應用結合起來,并取得很大的成功。第三階段始于20世紀80年代,隨著超大規(guī)模集成電路技術、超導技術、生物技術、光學技術的發(fā)展與支持,使機器學習的研究進入了更高層次的發(fā)展時期。1.2.4機器學習2.機器學習的分類按系統(tǒng)的學習能力分類,可分為監(jiān)督學習、無監(jiān)督學習和半監(jiān)督學習,這是最常見的一種分類方法。按學習方法分類,可分為符合學習與非符號學習。按學習目標分類,可分為概念學習、規(guī)則學習、函數(shù)學習和類別學習等。按推理方式分類,可分為基于演繹的學習及基于歸納的學習。按綜合屬性分類,可分為歸納學習、分析學習、連接學習和遺傳算法與分類器系統(tǒng)等。1.2.4機器學習3.機器學習的基本過程機器學習是一個流程性很強的工作,包括數(shù)據(jù)采集、數(shù)據(jù)清洗、數(shù)據(jù)預處理、特征工程、模型調優(yōu)、模型融合、模型驗證和模型持久化等。1.2.5機器行為機器行為主要指計算機的表達能力,即模擬人的能力行為,如說話、寫字、畫畫、走路和取物。工廠中使用機器人制造汽車的場景1.2.6習題與實踐1.簡答題(1)什么是知識工程?(2)不同時期機器學習有哪些研究方向或內容?2.思考題(1)結合生活實際,你認為現(xiàn)實生活中人工智能的研究內容有哪些?(2)你認為人工智能的哪些研究內容可以與你就讀的專業(yè)相結合?哪些可能會是將來新的研究熱點?1.3人工智能技術與應用1.3.1模式識別模式識別(PatternRecognition,PR)是指對表征事物或現(xiàn)象的各種形式的(數(shù)值、文字或邏輯關系)信息進行處理和分析,以對事物或現(xiàn)象進行描述、辨認、分類和解釋的過程,是信息科學和人工智能的重要組成部分?;谀J阶R別的醫(yī)療影像分析1.3.2計算機視覺計算機視覺(ComputerVision,CV)又稱機器視覺(MachineVision),是用機器(攝影機或電腦)代替人眼對目標進行測量、識別和跟蹤,并進一步做圖形處理,抽取目標特征,使之成為更適合人眼觀察或儀器檢測的圖像,進而根據(jù)判別結果來控制現(xiàn)成的設備動作,是計算機及相關設備對生物視覺的一種模擬,是模式識別的一個重要方面。微信小程序“形色識花”1.3.3自然語言處理自然語言處理(NaturalLanguageProcessing,NLP)的目標是讓計算機能“聽懂”和“看懂”人類語言(如漢語、英語等)。世界人工智能大會上的機器實時翻譯1.3.4搜索技術搜索技術(SearchTechnique)是用搜索方法尋求問題解答的技術,其根據(jù)問題的實際情況不斷尋找可利用的知識,構造出一條代價較少的推理路線,使問題得到圓滿解決。人工智能程序AlphaGo與人類圍棋世界冠軍對弈1.3.5專家系統(tǒng)專家系統(tǒng)(ExpertSystem)是一個基于專門領域知識求解特定問題的智能計算機程序系統(tǒng),其內部含有大量的某個領域專家水平的知識與經(jīng)驗,能夠利用人類專家的知識和解決問題的方法來處理該領域問題。氣象預報專家系統(tǒng)1.3.6神經(jīng)網(wǎng)絡神經(jīng)網(wǎng)絡(NeuralNetworks,NNs)又稱人工神經(jīng)網(wǎng)絡(ArtificialNeuralNetworks,ANNs)或連接模型(ConnectionModel),是一種模仿動物神經(jīng)網(wǎng)絡行為特征,進行分布式并行信息處理的算法數(shù)學模型。BP神經(jīng)網(wǎng)絡用于預測新冠肺炎確診人數(shù)1.3.7數(shù)據(jù)挖掘數(shù)據(jù)挖掘(DataMining)是指從大量的數(shù)據(jù)中通過算法搜索隱藏于其中信息的過程,其通過統(tǒng)計、在線分析處理、情報檢索、機器學習、專家系統(tǒng)(依靠過去的經(jīng)驗法則)和模式識別等諸多方法來實現(xiàn)目標。天網(wǎng)工程1.3.8智能控制智能控制(IntelligentControls)是由智能機器自主地實現(xiàn)其目標的過程,是具有智能信息處理、智能信息反饋和智能控制決策的控制方式,是控制理論發(fā)展的高級階段,主要用來解決那些用傳統(tǒng)方法難以解決的復雜系統(tǒng)的控制問題。自動駕駛1.3.9智能機器人智能機器人(IntelligentRobot)是具有人類特有的某種智能、能模擬人類行為的機器。幾款有代表性的波士頓動力機器人1.3.10組合優(yōu)化組合優(yōu)化(CombinatorialOptimization)的目標是從組合問題的可行解集中求出最優(yōu)解,其一般是NP完全問題(NondeterministicPolynomialCompleteProblem)??罩薪煌ü苤葡到y(tǒng)1.3.11云端人工智能云端人工智能(CloudAI)是將云計算的運作模式與人工智能深度融合,在云端集中使用和共享機器學習工具的技術,是目前主流的人工智能平臺服務方式。根據(jù)部署方式可分為公有云、私有云和混合云。百度AI體驗中心騰訊AI體驗中心1.3.12習題與實踐1.簡答題(1)結合生活實際,你認為現(xiàn)實生活中人工智能有哪些成熟應用?(2)請查詢相關資料,了解人工智能技術在你就讀專業(yè)領域有哪些具體應用?隨著人工智能技術的發(fā)展和成熟,你覺得你就讀專業(yè)領域有哪些崗位有可能被人工智能取代?你打算如何應對?2.實踐題

請選擇一個互聯(lián)網(wǎng)企業(yè),調查了解這個企業(yè)提供的云端人工智能系統(tǒng),向大家介紹它是什么類型?能提供哪些服務?有什么特色?1.4智能計算系統(tǒng)1.4.1智能計算系統(tǒng)概述1.智能計算系統(tǒng)智能計算系統(tǒng),是智能的物質載體算法或代碼本身并不能構成一個完整的智能體,必須要在一個具體的物質載體上運行才能展現(xiàn)出智能智能計算系統(tǒng)包括硬件部分,集成了通用CPU和智能芯片的異構系統(tǒng)軟件部分,包括了面向開發(fā)者的智能計算編程環(huán)境,如前端編程語言、深度學習框架和編程平臺等。CPU+GPU/TPU/寒武紀處理器等TensorFlow、Caffe、PyTorch等Python、C、C++等硬件部分深度學習框架前端編程語言軟件部分異構系統(tǒng)CUDA、OpenCL等

編程平臺1.4.1智能計算系統(tǒng)概述2.智能計算系統(tǒng)的硬件部分一般采用異構系統(tǒng),即CPU+智能芯片CPU,像“通才”,主要負責通用的計算,擅長處理操作系統(tǒng)和通用應用程序任務,使得異構系統(tǒng)可以適應多方面的應用智能芯片,像“專才”,專門用于人工智能算法的計算,例如矩陣計算等,具有強大的數(shù)值計算能力,且能效比較高CPU和智能芯片各司其職,CPU主要負責通用計算和系統(tǒng)控制等工作,智能芯片主要集中在高效率、低成本和并行的數(shù)值計算,使得異構系統(tǒng)比同構系統(tǒng)擁有了更高的性能和能效1.4.1智能計算系統(tǒng)概述3.智能計算系統(tǒng)的軟件部分CPU和智能芯片往往具有著完全不同的指令和特性,編程時需要同時兼顧CPU和智能芯片為方便進行高效的人工智能開發(fā),需要提供一套編程環(huán)境編程環(huán)境可以看做是智能計算系統(tǒng)與程序員之間的一個界面,是衡量系統(tǒng)易用性的重要指標,包含:前端編程語言,包括Python、C、C++等深度學習框架,包括TensorFlow、Caffe和Pytorch等編程平臺,包括CUDA(統(tǒng)一計算架構)、OpenCL(開放計算語言)等。1.4.2智能計算系統(tǒng)發(fā)展1.第一代智能計算系統(tǒng)以面向符號主義的計算系統(tǒng)為代表出現(xiàn)于1980年前后,正是人工智能發(fā)展的第二次熱潮,主流的智能編程語言是Prolog和LISP。到了20世紀90年代初,人工智能第二次熱潮消退。由于缺乏實際的應用場景等原因,第一代智能計算系統(tǒng)逐漸退出了歷史舞臺1.4.2智能計算系統(tǒng)發(fā)展2.第二代智能計算系統(tǒng)以面向連接主義的計算系統(tǒng)為代表自2010年前后發(fā)展至今,第二代智能計算系統(tǒng)形成于人工智能發(fā)展的第三次熱潮,主要用于深度學習深度學習在各個領域都取得了大量應用,人工智能已經(jīng)深入人們生活的各個方面,預期第二代智能計算系統(tǒng)將長期發(fā)展并不斷優(yōu)化1.4.2智能計算系統(tǒng)發(fā)展3.下一代智能計算系統(tǒng)第一、第二代智能計算系統(tǒng)可看做是面向智能算法的定制化設計強/弱人工智能弱人工智能,只能限于使用軟件來研究或完成特定的問題或推理任務,當前已有的人工智能應用屬于弱人工智能范疇強人工智能,是一種具有通用智能的機器的概念,該機器模仿人類的智能或行為,并具有學習和應用其智能來解決任何問題的能力。在任何給定的情況下,強人工智能都可以以人類的方式思考、理解和行動。下一代智能計算系統(tǒng),未來出現(xiàn),預期成為強人工智能的物質載體1.4.3習題與實踐1.簡答題(1)請簡述智能計算系統(tǒng)包括哪些部分?(2)請簡述智能計算系統(tǒng)的歷史與展望?(3)如果你有數(shù)萬元的預算,打算購置一臺用于深度學習的工作站,你會如何選配硬件?(4)你認為強人工智能會出現(xiàn)嗎?2.實踐題請檢查你的個人計算機的GPU是否支持CUDA。本章小結

本章小結

人工智能基礎第2章人工智能體驗

學習目標1.了解人工智能的應用場景。2.了解人工智能開發(fā)平臺。3.掌握人工智能云服務的使用方法和技巧。4.熟悉人工智能開發(fā)環(huán)境的使用。2.1體驗人工智能應用2.1.1圖像識別體驗1.圖像標簽圖像標簽基于深度學習技術,用于準確識別圖像中的視覺內容。圖像自動標簽技術應用范圍廣泛:將相關標簽或關鍵字自動分配給大量圖像和視頻,減少人工標注的成本;相冊圖片自動分類,方便用戶管理相冊;識別的標簽融入推薦系統(tǒng),實現(xiàn)個性化準確推送。2.1.1圖像識別體驗2.低光照增強低光照增強基于信號處理和深度學習技術,通過增強圖像暗光區(qū)域,凸顯圖像中有效視覺信息。低光照增強適用于模糊圖像重建高清過程,保持圖像內容真實可信,顏色不失真。2.1.1圖像識別體驗3.圖像去霧圖像去霧基于信號處理和深度學習技術,提供圖像去霧的能力。圖像去霧可以對霧霾和揚塵等惡劣天氣因素導致的模糊圖像,重建出高清圖像。2.1.2人臉識別體驗1.身份驗證刷臉身份驗證使用了人臉檢測和人臉比對功能。人臉識別能快速檢測分析兩張圖片中的人臉信息,分析人臉關鍵點信息,獲取人臉屬性,實現(xiàn)人臉的精確比對進行身份核實。2.1.2人臉識別體驗2.客流分析客流分析基于人臉識別、比對和搜索技術??土鞣治隹蓽蚀_分析顧客年齡、性別等信息,區(qū)別新老客戶、助力精準營銷??土鞣治鲋С衷诤A繄D片特征庫中進行人臉搜索。2.1.3文字識別體驗1.駕駛證識別駕駛證識別可以快速完成需要實名認證的場景,降低實名認證成本,準確快捷方便。通過調用華為云駕駛證識別接口,可以識別用戶上傳的駕駛證圖片,提取關鍵信息和字段。2.1.3文字識別體驗2.增值稅發(fā)票識別增值稅發(fā)票識別可識別發(fā)票中的關鍵字段信息,并支持圖像翻轉、文字錯行和蓋章干擾等復雜場景。增值稅發(fā)票識別可以用于財務報銷、發(fā)票信息整理等場景。2.1.4內容審核體驗1.以“社交內容審核”示范社交內容審核基于深度學習技術和敏感詞庫,實時檢測社交軟件上聊天內容中可能出現(xiàn)的違規(guī)信息,避免辱罵、低俗等言論,凈化網(wǎng)絡環(huán)境。敏感詞庫可實時更新,緊跟社會熱點問題,及時識別新型不合規(guī)內容。2.1.5習題與實踐1.簡答題簡述華為EI智能體驗館有哪些功能。簡述人工智能已經(jīng)應用到你的生活和學習的哪些方面。2.實踐題使用華為EI智能體驗館的圖像標簽功能,上傳自己手機拍攝的圖片,觀察識別結果的準確度。使用華為EI智能體驗館,體驗更多人工智能應用。使用瀏覽器訪問EI智能體驗館,嘗試體驗“文字識別”分類下的“身份證識別”和“通用文字識別”功能。2.2體驗人工智能開發(fā)2.2.1華為ModelArts簡介1.華為ModelArts簡介華為ModelArts是面向AI開發(fā)者的一站式開發(fā)平臺,能夠支撐開發(fā)者從數(shù)據(jù)到AI應用的全部開發(fā)過程。ModelArts自動學習是一種幫助人們實現(xiàn)AI應用的低門檻、零代碼的定制化模型開發(fā)工具。ModelArts自動學習功能可以根據(jù)標注數(shù)據(jù),自動設計模型、自動調參、自動訓練、自動壓縮和部署模型。2.2.1華為ModelArts簡介2.ModelArts自動學習的操作流程準備數(shù)據(jù):登錄對象存儲服務OBS,創(chuàng)建OBS桶,將訓練數(shù)據(jù)上傳至OBS桶;創(chuàng)建項目:填寫項目名稱,數(shù)據(jù)集名稱,選擇數(shù)據(jù)集輸入和輸出的位置;數(shù)據(jù)標注:未標注的數(shù)據(jù)添加標簽、或者修改標簽;自動訓練:設置部分訓練相關參數(shù),開始自動訓練;部署上線:部署模型,用測試數(shù)據(jù)測試訓練結果。2.2.1華為ModelArts簡介3.ModelArts自動學習支持任務ModelArts自動學習支持計算機視覺領域的圖像分類與物體檢測任務、自然語言處理領域的文本分類任務,以及傳統(tǒng)機器學習領域的預測分析任務等。圖像分類(ImageClassification)是最常用的分類問題。物體檢測(ObjectionDetection)可以找出圖像中感興趣的物體,并確定物體的位置、大小和形狀。預測分析(PredictiveAnalysis)預測輸入變量(自變量)和輸出變量(因變量)之間的關系。文本分類(TextClassification)可將一段文本劃分到某個類別中。2.2.2華為云簡介1.注冊與認證注冊華為云賬號認證華為云賬戶配置訪問授權2.華為云的對象存儲服務進入對象存儲服務OBS控制臺創(chuàng)建桶上傳文件至桶2.2.2華為云簡介1.注冊與認證注冊華為云賬號進入華為云官網(wǎng)首頁(),單擊右上角的“注冊”,完成賬號注冊。認證華為云賬戶首次登錄時,需要完成“實名認證”。在華為云首頁進入“賬號中心”頁面,可以完成“實名認證”。2.2.2華為云簡介1.注冊與認證配置訪問授權首頁搜索“ModelArts”,選擇“控制臺”。單擊“訪問授權”進入授權設置頁面。在訪問授權中完成授權。2.2.2華為云簡介2.華為云的對象存儲服務對象存儲服務(OBS)是一個基于對象的海量存儲服務,用以提供數(shù)據(jù)存儲能力。桶是OBS中存儲對象的容器,存儲數(shù)據(jù)前,首先需要創(chuàng)建一個桶,然后才能在OBS的桶內存儲數(shù)據(jù)ModelArts使用OBS進行數(shù)據(jù)存儲以及模型備份。2.2.2華為云簡介2.華為云的對象存儲服務進入對象存儲服務OBS控制臺通過華為云官網(wǎng)首頁進入控制臺頁面。在控制臺頁面進行區(qū)域選擇。目前,“北京四”區(qū)域提供了免費GPU訓練和免費CPU部署資源,也可以選擇該區(qū)域以便后續(xù)使用這些免費資源。單擊

圖標,在“服務列表”清單中選擇“對象存儲服務OBS”,進入OBS管理控制臺。2.2.2華為云簡介2.華為云的對象存儲服務創(chuàng)建桶在創(chuàng)建桶頁面中,填寫配置所需的相關參數(shù)。配置完畢后,單擊“立即創(chuàng)建”,頁面跳轉后,在“桶名稱”列表中可看到成功創(chuàng)建的桶。2.2.2華為云簡介2.華為云的對象存儲服務上傳文件至桶在桶列表中,單擊要存儲文件的桶名稱,進入“概覽”頁面,單擊導航欄中的“對象”。新建文件夾并上傳本地文件。2.2.3ModelArts自動學習簡介1.進入ModelArts控制臺打開華為云ModelArts的方式和打開對象存儲服務OBS方式一樣。在“服務列表”中找到“EI企業(yè)智能”目錄下的“ModelArts”。單擊ModelArts后,進入“總覽”頁面。2.2.3ModelArts自動學習簡介2.選擇ModelArts自動學習項目在“總覽”界面可根據(jù)“新手入門”引導完成自動學習物體檢測的應用。單擊導航欄左側“自動學習”,列表中是當下ModelArts自動學習可實現(xiàn)的任務,包括圖像分類、物體檢測、預測分析、聲音分類和文本分類。2.2.4ModelArts自動學習項目實例1.基于ModelArts的圖像分類解決一個計算機視覺領域的圖像二分類問題,使用貓狗數(shù)據(jù)集進行圖像分類訓練和預測。數(shù)據(jù)文件夾準備在桶中自主命名建立兩個文件夾,用于后續(xù)步驟中選擇數(shù)據(jù)集輸入和數(shù)據(jù)集輸出位置。2.2.4ModelArts自動學習項目實例1.基于ModelArts的圖像分類項目創(chuàng)建單擊自動學習項目任務頁面中圖像分類下的“創(chuàng)建項目”按鈕,創(chuàng)建圖像分類項目。2.2.4ModelArts自動學習項目實例1.基于ModelArts的圖像分類數(shù)據(jù)上傳與標注分別添加配套資源中的貓狗圖片并完成圖片標注。2.2.4ModelArts自動學習項目實例1.基于ModelArts的圖像分類自動訓練單擊“開始訓練”按鈕,完成參數(shù)設置。完成訓練訓練設置完成后,按照引導“發(fā)布”,即開始模型的自動訓練。待訓練狀態(tài)變?yōu)椤澳P桶l(fā)布中”,最后變?yōu)椤耙淹瓿伞?,則自動訓練完成。2.2.4ModelArts自動學習項目實例1.基于ModelArts的圖像分類模型部署訓練成功后,單擊“部署”,開始將模型部署上線為在線服務。服務測試上傳配套資源中的任意一張相關圖片,單擊“預測”按鈕進行預測。2.2.4ModelArts自動學習項目實例2.基于ModelArts的預測分析利用波士頓房價數(shù)據(jù)集,通過回歸建立房價影響因素(自變量)和房價(因變量)之間的關系模型,實現(xiàn)對房價的預測。數(shù)據(jù)文件夾和文件準備在桶中自主命名文件夾,如“predictive-data”;進入文件夾,點擊“上傳對象”,上傳相關數(shù)據(jù);波士頓房價數(shù)據(jù)集包含14個屬性。項目創(chuàng)建單擊自動學習項目任務頁面中預測分析下的“創(chuàng)建項目”按鈕,完成相關配置,創(chuàng)建預測分析項目。2.2.4ModelArts自動學習項目實例2.基于ModelArts的預測分析數(shù)據(jù)標注單擊“項目創(chuàng)建”按鈕,跳轉到數(shù)據(jù)標注頁面;選擇“attr_14”列為“標簽列”,標簽數(shù)據(jù)類型選擇為“連續(xù)數(shù)值”,預測分析將訓練回歸模型。自動訓練使用默認的訓練設置參數(shù)完成訓練設置;訓練成功后,訓練狀態(tài)變?yōu)椤耙淹瓿伞薄?.2.4ModelArts自動學習項目實例2.基于ModelArts的預測分析完成訓練訓練完成后,可以在完成界面中查看訓練詳情;評估值為“MAE”(平均絕對誤差)、“MSE”(均方誤差)和“RMSE”(均方根誤差);一般來說,誤差值越小表示模型越好。模型部署點擊“部署”按鈕,按引導將模型部署上線為在線服務。2.2.4ModelArts自動學習項目實例2.基于ModelArts的預測分析服務測試選擇管理狀態(tài)為“運行中”的服務版本,在“服務測試”的“代碼”區(qū)域,輸入調試代碼進行預測。相關調試代碼在配套資源的相應文件夾中。點擊“預測”按鈕,將會在“返回結果”區(qū)域中的“predictioncol”行看到預測結果。2.2.4ModelArts自動學習項目實例3.基于ModelArts的文本分類使用新聞標題數(shù)據(jù)集(包含教育、財經(jīng)、政治和社會四個主題),自動訓練出一個根據(jù)新聞標題進行文本分類的模型,預測新輸入的新聞標題主題。數(shù)據(jù)文件夾準備點擊“新建文件夾”,分別建立名為“THU-news-out”和“THU-news”的文件夾。項目創(chuàng)建單擊自動學習項目任務頁面中文本分類下的“創(chuàng)建項目”按鈕,完成相關配置,創(chuàng)建預測分析項目。在添加標簽集選項中依次添加教育、時政、財經(jīng)和社會類標簽,可選擇不同的標簽顏色加以區(qū)分。2.2.4ModelArts自動學習項目實例3.基于ModelArts的文本分類數(shù)據(jù)上傳與標注單擊“添加文件”,選擇配套資源相應的文件夾,上傳各類別的文本數(shù)據(jù)并完成每條數(shù)據(jù)的標注。自動訓練單擊“開始訓練”按鈕,選擇默認配置參數(shù),即可按引導開始模型的自動訓練。2.2.4ModelArts自動學習項目實例3.基于ModelArts的文本分類完成訓練訓練狀態(tài)由“運行中”變?yōu)椤耙淹瓿伞保赐瓿闪四P偷淖詣佑柧?。訓練完成后,可在完成界面中查看訓練詳情,如“評估結果”、“訓練參數(shù)”和“分類統(tǒng)計表”等。2.2.4ModelArts自動學習項目實例3.基于ModelArts的文本分類模型部署單擊版本管理區(qū)域中的“部署”,按引導將模型部署上線。服務測試部署完成后,在“服務測試”文本框中輸入想要測試的新聞標題,單擊“預測”按鈕,可以得到預測結果。2.2.5習題與實踐1.簡答題請簡述ModelArts自動學習的操作流程包含哪些階段。圖像分類中,如果不是簡單地對貓和狗進行二分類,而是一個多分類問題,還有哪些應用場景?請簡述文本分類技術可以應用到哪些應用場景中。2.實踐題請使用ModelArts自動學習,實現(xiàn)天氣圖片的三分類:多云(cloud)、下雨(rain)、晴天(shine)。請使用ModelArt自動學習,實現(xiàn)銀行存款預測。2.3體驗人工智能編程語言2.3.1扣叮人工智能實驗室簡介1.登錄并選擇實驗模式訪問騰訊扣叮網(wǎng)站(),選擇合適的登錄方式完成登錄。騰訊扣叮人工智能實驗室提供兩種模式,瀏覽器模式(JS)和云模式(Python)。為方便快速適應編程環(huán)境,在對應選擇欄分別選擇“云模式”、“中文積木”和“積木編程”選項。2.3.1扣叮人工智能實驗室簡介2.了解人工智能實驗室中Python的數(shù)據(jù)類型Python支持整型、浮點型、字符串、列表、元組、集合和字典等數(shù)據(jù)類型。變量在使用前都必須賦值。進入騰訊扣叮人工智能實驗室后,單擊左側導航欄中的各種積木分類,可以打開具體操作的積木塊。2.3.1扣叮人工智能實驗室簡介3.了解人工智能實驗室中Python程序的控制結構Python支持三大類控制結構:順序結構、分支結構以及循環(huán)結構:順序結構,就是按照代碼順序自上而下地執(zhí)行;分支結構,根據(jù)判斷條件選擇不同路徑的運行方式;循環(huán)結構,對某個語句塊形成循環(huán)運行模式,直到滿足終止條件時退出循環(huán)。2.3.1扣叮人工智能實驗室簡介3.了解人工智能實驗室中Python程序的控制結構例2-3-2如下左圖,根據(jù)年齡判斷是否成年。例2-3-3如上右圖,通過循環(huán)把1到10之間的整數(shù)相加起來,得到累加和。2.3.2Python編程體驗1.Python編程體驗蒙特卡洛方法依賴于重復隨機采樣來獲取數(shù)值結果,基本概念是使用隨機性來解決原則上可以確定的問題。圓周率π的計算是蒙特卡洛方法的一個簡單示例。在正方形內部隨機選擇一個點,則該點位于圓之內或圓之外,重復該過程很多次,根據(jù)圓內的隨機點與正方形中隨機點總數(shù)的比率,可以估算出π。

2.3.2Python編程體驗1.Python編程體驗例2-3-4使用騰訊扣叮人工智能實驗室,采用蒙特卡洛方法計算π。在橫縱坐標軸區(qū)間都為[0,1]的區(qū)域隨機產(chǎn)生n個坐標點,計算坐標點到原點的距離,如果距離小于等于1,則認為坐標點在圓內,計算圓內坐標點的數(shù)目與總數(shù)的比例,然后乘以4,就可以求得圓周率。2.3.3習題與實踐1.簡答題請簡述Python有哪些數(shù)據(jù)類型。請簡述Python支持哪三大控制結構,并說明是否任何一個算法都可以使用這三種控制結構來完成。2.實踐題騰訊扣叮人工智能實驗室的云模式下,提供了“波士頓房價-積木”的樣例,該樣例采用神經(jīng)網(wǎng)絡(多層感知機)模型進行波士頓房價預測。一個完整的神經(jīng)網(wǎng)絡模型主要包括準備數(shù)據(jù)、定義網(wǎng)絡、準備訓練、訓練網(wǎng)絡和評估結果五個階段。請打開該樣例,找到并理解以上五個階段,按要求完成內容。打開騰訊扣叮人工智能實驗室,在“云模式(Python)”下使用“積木編程”完成給定任務。2.4Anaconda開發(fā)環(huán)境2.4.1Anaconda安裝Anaconda是一個Python的發(fā)行版內置了大批科學計算工具包具有包管理和環(huán)境管理的功能在多個項目要求不同開發(fā)環(huán)境的應用場景下,還可以創(chuàng)建不同的虛擬環(huán)境進行隔離附帶了IDLE、Spyder和JupyterNotebook等軟件1.下載Anaconda訪問網(wǎng)址/products/individual,選擇合適的版本下載。2.安裝Anaconda2.4.1Anaconda安裝3.查看Anaconda單擊開始菜單,在軟件安裝列表中可以找到“Anaconda3(64-bit)”。安裝程序包括AnacondaNavigatorAnacondaPromptJupyterNotebookSpyder等AnacondaNavigator方便地啟動應用方便地管理conda包、環(huán)境和頻道等1.第三方庫的安裝Anaconda中提供了pip和conda兩種方式管理工具包。打開AnacondaPrompt,在其中輸入相關命令,就可以使用pip和conda進行工具包的管理了。2.4.2第三方庫的安裝2.4.2第三方庫的安裝2.pip中的常用命令安裝包:pipinstall包名更新包:pipinstall包名--upgrade卸載包:pipuninstall包名查詢已經(jīng)安裝的包:piplist查詢已安裝包的詳細信息:pipshow包名查詢可以升級的包:piplist-o查看pip的版本:pip-V更新pip版本:pipinstall--upgradepip2.4.2第三方庫的安裝3.conda中的常用命令安裝包:condainstall包名更新包:condaupdate包名卸載包:condauninstall包名查詢已安裝的包:condalist查看conda的版本:conda-V更新conda版本:condaupdateconda更新Anaconda版本:condaupdateanaconda更新Python版本:condaupdatepython2.4.2第三方庫的安裝4.更改鏡像源解決使用pip或者conda安裝工具包時,經(jīng)常出現(xiàn)的超時、無法下載的問題。永久更改pip的鏡像源pipconfigsetglobal.index-url/simple永久更改conda的鏡像源condaconfig--addchannels/anaconda/pkgs/freecondaconfig--addchannels/anaconda/pkgs/maincondaconfig--setshow_channel_urlsyes2.4.3IDLE簡介1.IDLE簡介IDLE是Python軟件包自帶的一個集成開發(fā)環(huán)境,可以方便地創(chuàng)建、運行和調試Python程序。使用IDLE可以直接在PythonShell窗口寫入并執(zhí)行代碼,也可以通過創(chuàng)建Python文件的方式寫入并執(zhí)行代碼。2.PythonShell中編程打開AnacondaPrompt,輸入命令“idle”按回車鍵執(zhí)行,即可打開PythonShell窗口。在Shell窗口中輸入代碼,按鍵盤回車鍵,代碼執(zhí)行。2.4.3IDLE簡介3.Python文件中編程單擊PythonShell窗口中的“File”,選擇“NewFile”創(chuàng)建Python文件。在文件中寫入代碼,保存文件。單擊文件窗口中的“Run”,選擇“RunModule”執(zhí)行文件中的代碼。4.打開Python文件在IDLE的PythonShell窗口中,單擊“File”,選擇“Open…”,在彈出框中查找要打開的文件位置,選擇該文件,單擊“打開”就可以打開該Python文件。2.4.4Spyder簡介1.Spyder簡介Spyder是一個強大的交互式Python語言開發(fā)環(huán)境,提供高級的代碼編輯、交互測試、調試等功能。Anaconda已經(jīng)集成了Spyder編輯器。左側為文件代碼編輯區(qū),右上方為輔助功能區(qū),右下方為IPython控制臺區(qū)。2.4.4Spyder簡介2.IPython控制臺中逐行執(zhí)行代碼在IPython控制臺中輸入代碼,按回車鍵,代碼執(zhí)行。3.文件代碼編輯區(qū)中編程在代碼編輯區(qū)輸入代碼,單擊工具欄中的程序運行圖標,程序執(zhí)行,并在右下方的IPython控制臺中顯示執(zhí)行結果。2.4.5JupyterNotebook簡介1.JupyterNotebook簡介JupyterNotebook是一個基于網(wǎng)頁的交互式代碼編輯軟件,可被應用于代碼開發(fā)、文檔編寫、代碼運行和結果展示的全過程計算。JupyterNotebook的運行分為:服務器端瀏覽器端默認根目錄為“C:\Users\用戶名”。創(chuàng)建的筆記本會默認保存至該目錄下。其它筆記本也可以放入該目錄后打開。2.4.5JupyterNotebook簡介2.JupyterNotebook中編程在JupyterNotebook的主界面中新建“ipynb”格式的筆記本。在筆記本的第一行寫入代碼,單擊工具欄中的“運行”按鈕執(zhí)行該代碼塊,代碼塊下方會顯示代碼的執(zhí)行結果。2.4.5JupyterNotebook簡介3.JupyterNotebook中文檔書寫選擇一個輸入框,單擊工具欄中的“代碼”下拉框,選擇“Markdown”(或“標記”)。用戶在輸入框中寫入說明文字,單擊工具欄中的“運行”按鈕后,該處說明文字將以文檔的形式呈現(xiàn)。2.4.6習題與實踐1.簡答題Anaconda應用中集成了哪些程序?conda和pip在使用上有什么區(qū)別?分別有哪些常用的命令?簡述使用IDLE創(chuàng)建Python文件、寫入代碼、保存文件并執(zhí)行代碼的操作流程。簡述使用JupyterNotebook進行代碼開發(fā)、文檔編寫、代碼運行的操作流程。2.實踐題請從Anaconda官網(wǎng)(/products/individual)下載并安裝Anaconda環(huán)境。請在AnacondaPrompt命令行程序中,分別查看pip和conda的版本,以及pip和conda中已經(jīng)安裝的包名稱及版本。在IDLE、Spyder和JupyterNotebook三個軟件中實現(xiàn)“IloveChina!”的輸出。本章小結

本章小結

人工智能基礎第3章人工智能編程語言學習目標1.了解Python語言及其特點,知道Python語言的基本語法要素;2.掌握基本數(shù)據(jù)類型的常量表示、變量的創(chuàng)建、表達式語句書寫;3.掌握組合數(shù)據(jù)對象的創(chuàng)建及使用;4.了解程序的結構化流程控制,學會簡單Python程序的編寫;5.掌握常用的Python內置函數(shù)、標準模塊函數(shù)的使用;6.掌握函數(shù)的定義及調用,學會用模塊化設計程序。3.1Python語言及基本語法3.1.1Python語言概述1.python語言概述Python是一種結合了解釋型、編譯性和交互式的面向對象計算機編程語言Python是由荷蘭人GuidovanRossum于1989年發(fā)明,第一個公開發(fā)行版發(fā)行于1991年。3.1.1Python語言概述1.python語言的特點面向對象數(shù)據(jù)類型豐富功能強大的模塊庫可拓展性(可嵌入性)易讀、易維護性可移植性3.1.2基本字符、標識符和關鍵字1.基本字符Python語言的基本字符包括:數(shù)字字符:0,1,2,3,4,5,6,7,8,9。大小寫拉丁字母:a~z,A~Z。中文字符其他一些可打印字符,如:!@#$%&()*?:<>+-=\[]{}特殊字符,如:空格符、換行符、制表符等。3.1.2基本字符、標識符和關鍵字2.標識符通常使用有一定意義的標識符命名變量Day_of_year,ID_numberPython中的標識符命名規(guī)則:由大小寫英文字母、漢字、數(shù)字、下劃線組成;以英文字母、漢字、下劃線為首字符,長度任意,大小寫敏感;不能與python關鍵字同名。3.1.2基本字符、標識符和關鍵字3.關鍵字3.1.3常量和變量1.常量所謂常量,一般是指不需要改變也不能改變的字面值,例如整數(shù)389,浮點數(shù)23.56,字符串'hello',都是常量。這些數(shù)據(jù)是不會改變的,也稱為字面量。Python語言中數(shù)據(jù)儲存在內存后被封裝為一個對象,每一個對象都由對象ID、類型和值來標識。3.1.3常量和變量2.變量變量的值是可以變化的。在Python中,不需要事先聲明變量名及其類型,直接賦值即可創(chuàng)建任意類型的對象變量。不僅變量的值是可以變化的,變量的類型也是隨時可以發(fā)生改變的。3.1.3常量和變量“動態(tài)類型”技術3.1.4基本數(shù)據(jù)類型Python的基本數(shù)據(jù)類型包括3種數(shù)字類型整型(int)浮點型(float)復數(shù)(complex),表示邏輯值的布爾類型(bool)。3.1.4基本數(shù)據(jù)類型1.整型數(shù)據(jù)int在Python3.X里只有一種整數(shù)類型int。Python的整數(shù)在理論上沒有取值范圍限制,實際上的取值范圍受限于使用的計算機的內存大小。整數(shù)類型可以用4種進制表示,分別為:十進制、二進制、八進制和十六進制。Python中提供了內置函數(shù)bin()、oct()、int()、hex()對整數(shù)進行各種進制之間的轉換。3.1.4基本數(shù)據(jù)類型2. 浮點型數(shù)據(jù)float浮點類型數(shù)據(jù)表示存在小數(shù)部分的數(shù)據(jù),支持小數(shù)形式表示和指數(shù)形式表示。小數(shù)形式:例如12是整數(shù),12.0就是浮點數(shù)??茖W計數(shù)法:由正號、負號、數(shù)字和字母e(或E)組成,例如8.9e-4表示8.9×10-4

即0.00089。計算機中的浮點數(shù)都是以近似值存儲數(shù)據(jù),Python的float類型數(shù)通??商峁┲炼?5個數(shù)字的精度。3.1.4基本數(shù)據(jù)類型3. 布爾類型數(shù)據(jù)boolPython的布爾類型數(shù)據(jù)只有兩個:True和False,表示真和假。以True和False為值的表達式稱為布爾表達式,用于表示某種條件是否成立,是選擇控制和循環(huán)控制中必不可少的條件判斷表達式。3.1.4基本數(shù)據(jù)類型4.復數(shù)類型數(shù)據(jù)complexPython提供復數(shù)類型數(shù)據(jù),復數(shù)由實數(shù)部分(real)和虛數(shù)部分(image)構成,表示為:real+imag(J/j后綴)4.23+8.5j3.1.5表達式及語句1.運算符及表達式表達式是數(shù)據(jù)對象和運算符按照一定的規(guī)則寫出的式子,描述計算過程。表達式可以分為算術表達式、關系表達式、邏輯表達式等。最簡單的表達式可以是一個常量或一個變量。3.1.5表達式及語句(1)算術運算3.1.5表達式及語句(2)關系運算

<、<=、>、>=、==、!=3.1.5表達式及語句(3)邏輯運算:與(and)、或(or)、非(not)3.1.5表達式及語句2.語句語句是程序最基本的執(zhí)行單位,程序的功能就是通過執(zhí)行一系列語句來實現(xiàn)的。Python語言中的語句分為簡單語句和復合語句。簡單語句包括:表達式語句、賦值語句、輸入輸出語句、函數(shù)調用語句、return語句、break語句、continue語句、import語句等。復合語句包括:if選擇語句、while循環(huán)語句、for循環(huán)語句、函數(shù)定義等。3.1.5表達式及語句(1)語句書寫規(guī)則Python語言通常一行一條語句,使用回車換行符分割。從第一列開始頂格書寫,前面不能有多余空格。復合語句的構造體必須縮進。如果語句太長,可以使用反斜杠(\)來實現(xiàn)多行語句。分號(;)可以用于就在一行書寫多條語句。3.1.5表達式及語句(2)注釋注釋是一種輔助性文字,在解釋時會被解釋器忽略,不會被計算機執(zhí)行。Python語言中只提供了單行注釋的符號"#"在Python程序中實現(xiàn)多行注釋可以使用多行字符串常量表示。3.1.5表達式及語句(3)賦值語句在Python中,變量只是一個名稱。Python的賦值語句通過賦值符號“=”實現(xiàn),用賦值符號將右邊數(shù)據(jù)對象與左邊的變量名建立了引用關系,其一般使用方法如下,尖括號的內容表示具體使用時需要替代:<變量>=<表達式>3.1.5表達式及語句連續(xù)賦值兩個變量引用了同一個整數(shù)數(shù)據(jù)對象10。3.1.5表達式及語句同步賦值語句3.1.5表達式及語句復合賦值語句3.1.6輸入與輸出1.輸入(1)input()函數(shù)<變量>=input([<提示文本串>])3.1.6輸入與輸出(2)int()、float()函數(shù)3.1.6輸入與輸出2.輸出(1)print()函數(shù)3.1.6輸入與輸出(2)格式化字符串方法format()3.1.6輸入與輸出3.1.7習題與實踐1.簡答題(1)請指出下面合法的Python標識符有哪些?(2)請指出以下哪些不是Python的關鍵字?(3)請指出以下哪些不是Python支持的數(shù)據(jù)類型?(4)Python程序中表示注釋的方法有哪些?2.實踐題(1)請在Pythonshell中嘗試輸入以下數(shù)據(jù)類型的常量,使用type()函數(shù)查看數(shù)據(jù)的類型,注意每種常量的字面表示方式。(2)請在Pythonshell中嘗試以下有關BMI值計算的操作語句。3.2組合數(shù)據(jù)對象Python的內置類型組合數(shù)據(jù)3.2.1字符串字符串常量的表示

可以把一個或多個字符用單引號(')、雙引號(")或者三引號(''')括起來,三者的差別在于:使用單引號表示字符串時,字符串中可以包含雙引號;使用雙引號表示字符串時,字符串中可以包含單引號;使用三引號表示字符串時,字符串內容可以包含單引號、雙引號和換行符。3.2.1字符串1. 字符串創(chuàng)建字符串的常量表示及轉義字符使用示例3.2.1字符串1. 字符串創(chuàng)建字符串變量示例3.2.1字符串2.字符串的基本運算3.2.1字符串(1)索引操作3.2.1字符串(2)切片操作3.2.1字符串(3)連接和復制操作字符串類型支持使用“+”聯(lián)接兩個字符串,使用“*”進行字符串的復制。3.2.1字符串(4)子串測試運算

<子串>in<字符串>3.2.1字符串(5)str對象的方法3.2.1字符串(5)str對象的方法3.2.2列表和元組Python中的元組和列表可以存儲任意數(shù)量的一組相關數(shù)據(jù),形成一個整體。其中的每一項可以是任意數(shù)據(jù)類型的數(shù)據(jù)項。各數(shù)據(jù)項之間按索引號排列并允許按索引號訪問。元組和列表的區(qū)別為:元組是不可變對象,創(chuàng)建之后就不能改變其數(shù)據(jù)成員,這點與字符串是相同的;列表是可變對象,創(chuàng)建后允許修改、插入或刪除其中的數(shù)據(jù)成員,列表可以看作是一組數(shù)據(jù)變量的集合,可以對變量重新賦值,也可以增加或刪除變量。3.2.2列表和元組

1.元組和列表的創(chuàng)建(1)元組的創(chuàng)建

元組(tuple)一般使用圓括號()來標識,數(shù)組項之間用逗號分隔,可以是不同的數(shù)據(jù)類型。3.2.2列表和元組(2)列表的創(chuàng)建

列表(list)用方括號[]來標識,數(shù)據(jù)項之間以逗號分隔,可以是不同的數(shù)據(jù)類型。3.2.2列表和元組2. 元組和列表的序列操作(1)聯(lián)接和復制操作3.2.2列表和元組(2)索引訪問操作列表和元組、字符串根本區(qū)別在于列表是可變對象,每一個數(shù)據(jù)項可以視為一個變量,通過下標訪問修改變量的值,所以列表元素可以讀取,可以修改。元組和字符串的元素是不能通過下標訪問修改的。這使得列表可以通過索引操作更靈活地完成修改、刪除、插入等維護操作。3.2.2列表和元組(3)序列函數(shù)Python為序列對象提供了max()、min()、len()、sorted()等內置函數(shù)支持求序列最大值、序列最小值、序列長度、序列排序操作。3.2.2列表和元組sorted()函數(shù)3.2.2列表和元組(4)邏輯判斷操作

使用in和notin來測試是否是元組或列表元素,測試結果返回True或False布爾值。3.2.2列表和元組迭代訪問的算法模式下標訪問的算法模式(5)遍歷操作3.2.2列表和元組3.元組和列表的方法(1)元組的常用方法3.2.2列表和元組(2)列表的常用方法3.2.2列表和元組(2)列表的常用方法3.2.2列表和元組(2)列表的常用方法3.2.2列表和元組(2)列表的常用方法3.2.3字典和集合1.集合集合是無序的對象的聚集,是可變對象。集合是無序的,不能通過數(shù)字進行索引,而且集合中元素不能重復出現(xiàn)。根據(jù)集合的特性和集合運算,集合經(jīng)常應用:去除列表中的重復元素求兩個列表的相同元素(交集)求兩個列表的不同元素(差集)3.2.3字典和集合(1)創(chuàng)建集合Python的集合可分為可變集合(set)和不可變集合(frozenset)。對可變集合(set),可以用花括號{}標識直接創(chuàng)建,也可以通過set()函數(shù)創(chuàng)建,數(shù)據(jù)項之間以逗號分隔。3.2.3字典和集合列表去重復3.2.3字典和集合(2)集合運算3.2.3字典和集合(3)集合對象的方法3.2.3字典和集合2.字典字典是Python中唯一內置映射數(shù)據(jù)類型,與集合類型一樣是無序的,通過指定的鍵從字典訪問對應值。鍵值對沒有特定的排列順序,不能通過索引操作訪問字典元素。3.2.3字典和集合(1)字典的創(chuàng)建通過字面量直接創(chuàng)建通過dict()函數(shù)創(chuàng)建使用序列創(chuàng)建字典。3.2.3字典和集合(2)字典的訪問操作字典元素的訪問方式是通過鍵訪問相關聯(lián)的值,設d為字典對象,常用訪問操作有:d[key]

:返回鍵為key的value,如果key不存在,導致keyError異常報錯d[key]=value:如果key存在,設置值為value,如果key不存在,增加該鍵值對3.2.3字典和集合3.2.3字典和集合(3)字典對象的方法3.2.3字典和集合字典訪問常用算法模式3.2.4習題與實踐1.簡答題(1)請寫出判斷一個字符ch是數(shù)字字符的條件表達式。(2)如何使用Python實現(xiàn)一個英文標題的單詞首字符大寫?(3)求一個序列S1的逆序序列S2的表達式是什么?(4)實現(xiàn)對一個字符串列表按字符串長度排序。(5)一位運動員可以參加多個項目,請簡述使用Python求解參加了運動會的運動員名單的方法。2.實踐題(1)輸入s1="Hello",輸入s2="Python"再輸入s=s1+s2,顯示s的值。(2)輸入str="Hello,PythonWorld!",str[0],str[5],str[5],str[6:-7],str[::-1]。(3)輸入s="PythonString",再輸入下面語句,理解字符串運算(4)輸人s1='programming',再輸入s2='language'寫出能產(chǎn)生下列結果的表達式。(5)輸入:t1='001001','LiSi','men',18,t1,t1[0]和t1[1],type(t1),len(t1)。(6)輸入:t2=[’001001’,’LiSi’,’men’,18],t2,t2[0]和t2[1],type(t2),’men’int2。(7)輸入:t2+=[],輸入:t2。輸入:t2[0:1]=[],再輸入:t2。(8)輸入:a=4,輸入:d={},輸入:d[a]=10,輸入:d['1']=20(9)輸入:t=1,2,3,輸入:p=[1,2,3],輸入:s={1,2,3}(10)輸入:d1={"A":65,"B":66,"a":97,"c":99},d2=d1,d2["A"]=0,s=d1["A"]+d2["A"]3.3程序控制結構流程控制概述流程控制概述3.3.1順序結構任何一個程序都可以看作是一個順序結構程序中的語句按照它們出現(xiàn)的先后順序一條一條地執(zhí)行,一條語句執(zhí)行結束,自動地執(zhí)行下一條語句。例3-3-1

已知一個圓的半徑,求其內接正五邊形的面積。3.3.2選擇結構選擇結構也稱分支結構,是指程序的執(zhí)行出現(xiàn)了分支,它需要根據(jù)某一特定的條件選擇其中的一個分支執(zhí)行。常見的選擇結構:單分支if語句二分支if-else語句多分支if-elif-else語句。3.3.2選擇結構1.雙分支結構3.3.2選擇結構2.單分支結構3.3.2選擇結構多分支結構3.3.3循環(huán)結構循環(huán)結構是指程序中滿足某一條件時要重復執(zhí)行某些語句,直到條件為假時才可終止循環(huán)。在循環(huán)結構中的關鍵是:滿足什么條件時執(zhí)行循環(huán)?重復執(zhí)行哪些步驟?Python語言提供了有兩種循環(huán)語句:while語句是當循環(huán)語句,for語句是迭代循環(huán)語句,遍歷獲取迭代序列中的每一個元素。3.3.3循環(huán)結構1.while語句3.3.3循環(huán)結構2.for語句3.3.3循環(huán)結構使用Python中內置的函數(shù)range(),可以創(chuàng)建一個從start到end-1,步長為step的有序的整數(shù)數(shù)列。語法如下:range(start,end,step)3.3.3循環(huán)結構3.break、continue語句當break語句在循環(huán)結構中執(zhí)行時,它會忽視后面的代碼塊,立即跳出其所在的最內層的循環(huán)結構,轉而執(zhí)行該內層循環(huán)結構后面的語句。當continue語句在循環(huán)結構中執(zhí)行時,并不會退出循環(huán)結構,而是立即結束本次循環(huán),重新開始下一輪循環(huán),也就是說,跳過循環(huán)體中在continue語句之后的所有語句,繼續(xù)下一輪循環(huán)。3.3.3循環(huán)結構3.3.3循環(huán)結構3.3.4習題與實踐1.簡答題(1)構成流程控制的三種基本結構是什么?(2)試比較循環(huán)結構語句while和for的使用場合。(3)break語句和continue語句的區(qū)別是什么?2.實踐題(1)如果點正好在圓的邊線上(d==r),顯示“點在圓上”。(2)分別打開“配套資源\第3章”下sy3-3-2-1.py、sy3-3-2-2.py、sy3-3-2-3.py,補全程序,依次完成功能。(3)判斷三角形并計算面積。輸入三個浮點數(shù)a,b,c,判斷能否以它們?yōu)槿齻€邊構成三角形。若能,輸出YES和三角形面積值,否則輸出NO。(4)分段函數(shù)的計算。完成以下分段函數(shù)的計算。(5)N階乘的計算。完成以下功能:鍵盤輸入N的值,輸出N!結果。3.4模塊和函數(shù)3.4.1模塊一般的高級語言程序系統(tǒng)中都提供系統(tǒng)函數(shù)豐富語言功能。Python的系統(tǒng)函數(shù)由標準庫中的很多模塊提供。標準庫中的模塊,又分成內置模塊和非內置模塊內置模塊__builtin__中的函數(shù)和變量可以直接使用非內置模塊要先導入模塊,再使用。3.4.1模塊1.內置模塊3.4.1模塊3.4.1模塊2.非內置模塊非內置模塊指的是Python的一些標準庫,例如:數(shù)學運算的math庫、random庫、decimal庫日期和時間處理的datetime庫、time庫文字處理的re庫數(shù)據(jù)對象的array庫、queue庫系統(tǒng)信息的sys庫、os庫網(wǎng)絡應用的socket庫等3.4.1模塊(1)庫的導入和使用方法1導入:import<模塊名>使用:<模塊名>.<函數(shù)>(<參數(shù)>)<模塊名>.<字面常量>3.4.1模塊(2)庫的導入和使用方法2導入from<模塊名>import<函數(shù)名1>,<函數(shù)名2>…from<模塊名>import*使用<函數(shù)>(<參數(shù)>)3.4.1模塊3.擴展模塊3.4.2自定義函數(shù)3.4.2自定義函數(shù)1.函數(shù)的定義3.4.2自定義函數(shù)2.函數(shù)的調用(1)有返回值的函數(shù)調用如果函數(shù)有返回值,函數(shù)調用的時候需要安排接受返回值??梢允琴x值語句,將返回值賦值給一個變量。z=gcd(28,70)可以是表達式語句,將返回值作為表達式的一個數(shù)值,繼續(xù)參加運算print(gcd(28,70)*gcd(26,65))可以作為函數(shù)調用的實參z=gcd(gcd(28,70),21)3.4.2自定義函數(shù)(2)無返回值的函數(shù)調用沒有返回值的函數(shù)的調用形式是函數(shù)語句。3.4.2自定義函數(shù)(3)函數(shù)的執(zhí)行過程當程序調用一個函數(shù)是,程序的控制權就會轉移到被調用的函數(shù),當執(zhí)行到函數(shù)結束或執(zhí)行到一個return語句,函數(shù)將程序的控制權歸還給函數(shù)調用處。3.4.3lambda函數(shù)1.lambda函數(shù)的定義lambda函數(shù)是匿名函數(shù),所謂匿名函數(shù),通俗地說就是沒有名字的函數(shù)。lambda函數(shù)沒有名字。

定義lambda函數(shù)的語法如下:lambda參數(shù)列表:表達式3.4.3lambda函數(shù)2.lambda函數(shù)的應用filter()函數(shù)3.4.3lambda函數(shù)map()函數(shù)3.4.4習題與實踐1.簡答題(1)請簡述使用標準庫函數(shù)有哪些方法。(2)分別用def和lambda定義一個函數(shù),函數(shù)功能為判斷一個數(shù)是否是偶數(shù)。試比較說明兩種函數(shù)定義和調用有何不同。2.實踐題(1)最大公約數(shù)和最小公倍數(shù)(2)閏年輸出(3)墊片面積統(tǒng)計本章小結

本章小結

人工智能基礎第4章人工智能數(shù)據(jù)處理

學習目標1.了解NumPy數(shù)據(jù)類型。2.了解Pandas數(shù)據(jù)類型。3.掌握表數(shù)據(jù)處理方法。4.了解數(shù)據(jù)統(tǒng)計分析。5.掌握數(shù)據(jù)可視化。4.1

NumPy數(shù)據(jù)類型4.1

NumPy數(shù)據(jù)類型NumPy是使用python進行科學計算的基礎軟件包NumPy提供了多維數(shù)組對象ndarray能支持多種數(shù)據(jù)類型的數(shù)值元素的表示和計算NumPy模塊是第三方模塊,使用前需要導入。代碼如下:importnumpyasnp4.1.1多維數(shù)組對象ndarray1.創(chuàng)建多維數(shù)組對象(一維數(shù)組對象的創(chuàng)建)

調用array()函數(shù)創(chuàng)建一維數(shù)組格式如下:numpy.array(object,dtype=None,ndmin=0)object:可被轉換成數(shù)組的其它數(shù)據(jù)對象dtype:數(shù)組所需的數(shù)據(jù)類型ndmin:指定生成數(shù)組的維數(shù)4.1.1多維數(shù)組對象ndarray1.創(chuàng)建多維數(shù)組對象(一維數(shù)組對象的創(chuàng)建)調用arange()函數(shù)創(chuàng)建一維數(shù)組使用NumPy中的arange()函數(shù)可以生成數(shù)組,其格式如下所示:numpy.arange([start,]stop[,step,],dtype=None)start:開始的數(shù)字stop:結束的數(shù)字,但不包括stopstep:步長的數(shù)字4.1.1多維數(shù)組對象ndarray1.創(chuàng)建多維數(shù)組對象(一維數(shù)組對象的創(chuàng)建)調用linspace()函數(shù)創(chuàng)建一維數(shù)組使用NumPy中的linspace()函數(shù)可以創(chuàng)建等間隔一維數(shù)組,格式如下所示:numpy.linspace(start,stop,num=50,...)start:起始的值stop:結束的值num:在這個區(qū)間里生成數(shù)字的個數(shù),生成的數(shù)組是等間隔生成的4.1.1多維數(shù)組對象ndarray1.創(chuàng)建多維數(shù)組對象(二維數(shù)組對象的創(chuàng)建)調用array()函數(shù)創(chuàng)建二維數(shù)組NumPy中的array()函數(shù)也可以基于Python的嵌套列表創(chuàng)建二維數(shù)組。4.1.1多維數(shù)組對象ndarray1.創(chuàng)建多維數(shù)組對象(創(chuàng)建多維數(shù)組的常用方法)Numpy庫還提供了一些數(shù)組創(chuàng)建函數(shù),以滿足對不同維度的需求。調用reshape()函數(shù)創(chuàng)建多維數(shù)組NumPy中的zeros()函數(shù)用于生成指定形狀的全0數(shù)組NumPy中的ones()函數(shù)用于生成指定形狀的全1數(shù)組調用隨機函數(shù)創(chuàng)建多維數(shù)組4.1.1多維數(shù)組對象ndarray2.數(shù)組元素的訪問(通過索引方式進行查詢)例4-1-10:訪問一維數(shù)組對象persons和persons中的數(shù)組元素。>>>persons#顯示persons對象array([宋江,吳用,林沖,秦明],dtype=<U2)>>>persons[2]#取索引值為2的元素,得到字符串對象林沖>>>persons[[0,2]]#取索引值為0和2的元素,得到數(shù)組對象array([宋江,林沖],dtype=<U2)4.1.1多維數(shù)組對象ndarray2.數(shù)組元素的訪問(通過切片方式進行查詢)例4-1-12:切片訪問persons中的數(shù)組元素。>>>persons[2:]#取索引值大于等于2的元素array([林沖,秦明],dtype=<U2)>>>persons[1:3]#取索引值從1到2的元素array([吳用,林沖],dtype=<U2)4.1.1多維數(shù)組對象ndarray2.數(shù)組元素的訪問(通過布爾運算方式進行查詢)ndarry對象可以通過布爾運算方式獲取滿足布爾表達式的元素。例4-1-15:使用布爾運算式查詢scores對象中高于90或者低于80的成績。>>>scoresarray([[96,73,78],[90,89,92],[60,70,83]])>>>mask=(scores>90)|(scores<80)>>>maskarray([[True,True,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論