版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章
概述《數(shù)據(jù)采集與處理:基于Python》2024/5/1112024/5/112教學(xué)目標(biāo)本章學(xué)習(xí)目標(biāo)1、了解數(shù)據(jù)科學(xué)相關(guān)概念及數(shù)據(jù)分析完整過(guò)程;2、理解數(shù)據(jù)采集與存儲(chǔ)與其他學(xué)科和課程關(guān)系;3、理解數(shù)據(jù)類(lèi)型、數(shù)據(jù)存儲(chǔ)和大數(shù)據(jù)相關(guān)技術(shù);4、了解Python相關(guān)數(shù)據(jù)科學(xué)及數(shù)據(jù)采集與存儲(chǔ)工具等。本章提綱1、數(shù)據(jù)科學(xué)與數(shù)據(jù)采集及存儲(chǔ)2、數(shù)據(jù)采集概述3、數(shù)據(jù)存儲(chǔ)概述4、數(shù)據(jù)集成ETL概述5、Python相關(guān)數(shù)據(jù)科學(xué)工具數(shù)據(jù)科學(xué)概述2024/5/113什么是數(shù)據(jù)科學(xué)Data
Science?本世紀(jì)最性感的工作—哈佛商業(yè)評(píng)論HarvardBuisnessReview
數(shù)據(jù)科學(xué)家要比任何軟件工程師更擅長(zhǎng)統(tǒng)計(jì),相比任何統(tǒng)計(jì)學(xué)家又更擅長(zhǎng)軟件工程。學(xué)術(shù)研究領(lǐng)域(如管理學(xué)、社會(huì)學(xué)、經(jīng)濟(jì)學(xué)、金融學(xué)等)及產(chǎn)業(yè)界(如互聯(lián)網(wǎng)公司、金融業(yè)等)缺乏大量數(shù)據(jù)分析師。當(dāng)然數(shù)據(jù)科學(xué)家收入也很可觀?。?!2024/5/114什么是數(shù)據(jù)科學(xué)Data
Science?數(shù)據(jù)科學(xué)是一個(gè)跨學(xué)科的領(lǐng)域,研究從各種形式的數(shù)據(jù)中提取知識(shí)或見(jiàn)解的過(guò)程和系統(tǒng)。[維基百科。]數(shù)據(jù)科學(xué)將從收集真實(shí)世界的數(shù)據(jù),到處理和分析數(shù)據(jù),再到影響真實(shí)世界的循環(huán)閉合起來(lái),對(duì)應(yīng)的數(shù)據(jù)分析過(guò)程為:從現(xiàn)實(shí)世界或應(yīng)用系統(tǒng)中進(jìn)行數(shù)據(jù)抽取,然后進(jìn)行數(shù)據(jù)預(yù)處理、數(shù)據(jù)探索與可視化、機(jī)器學(xué)習(xí)與統(tǒng)計(jì)建模、模型校驗(yàn)及應(yīng)用部署和生成報(bào)告。2024/5/115什么是數(shù)據(jù)科學(xué)Data
Science?俗話說(shuō)“巧婦難為無(wú)米之炊”,數(shù)據(jù)是數(shù)據(jù)科學(xué)和數(shù)據(jù)分析的基礎(chǔ)和前提,如何獲取和存儲(chǔ)數(shù)據(jù)則是數(shù)據(jù)科學(xué)與大數(shù)據(jù)的基本功。當(dāng)然,數(shù)據(jù)科學(xué)家的收入也很可觀。根據(jù)Glassdoor網(wǎng)站統(tǒng)計(jì)的美國(guó)2022年平均薪資數(shù)據(jù),數(shù)據(jù)科學(xué)家的年薪中位數(shù)達(dá)到12.2萬(wàn)美元左右。此外,根據(jù)KDnuggets網(wǎng)站2022年數(shù)據(jù)科學(xué)職業(yè)的調(diào)研,美國(guó)勞工統(tǒng)計(jì)局2020年預(yù)測(cè)未來(lái)十年數(shù)據(jù)分析相關(guān)工作需求將有31%左右的增長(zhǎng),而2022年與數(shù)據(jù)分析相關(guān)的開(kāi)放工作崗位在Indeed網(wǎng)站就有7萬(wàn)個(gè),LinkedIn網(wǎng)站則有39萬(wàn)個(gè)左右。國(guó)內(nèi)職友集網(wǎng)站2022年的數(shù)據(jù)統(tǒng)計(jì)顯示,有3~5年工作經(jīng)驗(yàn)的北京數(shù)據(jù)科學(xué)家月薪平均達(dá)到3萬(wàn)~5萬(wàn)元。2024/5/116數(shù)據(jù)度量國(guó)際數(shù)據(jù)公司(IDC)發(fā)布的《數(shù)據(jù)時(shí)代2025》報(bào)告顯示,全球每年產(chǎn)生的數(shù)據(jù)將從2018年的33ZB(Zettabyte)增長(zhǎng)到2025年的175ZB,相當(dāng)于每天產(chǎn)生491EB(Exabyte)的數(shù)據(jù)?;ヂ?lián)網(wǎng)及物聯(lián)網(wǎng)時(shí)代,每天都有巨量的數(shù)據(jù)產(chǎn)生,那么如何度量這些數(shù)據(jù)呢?下面是部分?jǐn)?shù)據(jù)度量單位:Kilobyte(KB)=1024bytesMegabyte(MB)=1024KilobytesGigabyte(GB)=1024MegabytesTerabyte(TB)=1024GigabytesPetabyte(PB)=1024TerabytesExabyte(EB)=1024PetabytesZettabyte(ZB)=1024ExabytesYottabyte(YB)=1024Zettabytes2024/5/117數(shù)據(jù)利用在大數(shù)據(jù)時(shí)代,數(shù)據(jù)也是有待挖掘的資產(chǎn)和金礦,各行各業(yè)都已經(jīng)或正在利用大數(shù)據(jù)服務(wù)于自身的業(yè)務(wù),例如:通過(guò)有針對(duì)性的訓(xùn)練來(lái)提高身體素質(zhì)。改進(jìn)產(chǎn)品。改善決策。提供判斷以選擇正確的藥品、更好的餐館或更佳的路線等。預(yù)測(cè):選舉,流行疾病,群體行為,經(jīng)濟(jì)活動(dòng)等。精準(zhǔn)營(yíng)銷(xiāo):消費(fèi)者畫(huà)像,行為分析,個(gè)性化推薦等。生物識(shí)別:指紋識(shí)別,人臉識(shí)別,虹膜識(shí)別,聲音識(shí)別等。2024/5/118數(shù)據(jù)資源
在互聯(lián)網(wǎng)時(shí)代,各行各業(yè)都在產(chǎn)生大量的數(shù)據(jù),因此數(shù)據(jù)來(lái)源豐富多樣,如政府、互聯(lián)網(wǎng)企業(yè)、第三方機(jī)構(gòu)、商業(yè)企業(yè)等。下面是部分公開(kāi)數(shù)據(jù)來(lái)源的網(wǎng)址。IDataHub(http://datahub.io/dataset)WorldHealthOrganization(/research/en/)D()EuropeanUnionOpenDataPortal(http://open-data.europa.eu/en/data/)AmazonWebServicepublicdatasets(/datasets)FacebookGraph(/docs/graph-api)H()GoogleTrends(/trends/explore)GoogleFinance(/finance)GoogleBooksNgrams(/books/ngrams/books/datasetsv2.html)MachineLearningRepository(/ml/)OPENICPSR(/openicpsr/repository/)2024/5/119數(shù)據(jù)采集概述2024/5/1110數(shù)據(jù)采集定義數(shù)據(jù)采集又稱(chēng)為數(shù)據(jù)獲取,是指利用一種裝置,將來(lái)自各種數(shù)據(jù)源的數(shù)據(jù)自動(dòng)收集到該裝置中。被采集數(shù)據(jù)是已被轉(zhuǎn)換為電訊號(hào)的各種物理量(如溫度、水位、風(fēng)速、壓力等),可以是模擬量,也可以是數(shù)字量。數(shù)據(jù)采集一般是采樣方式,即間隔一定時(shí)間(稱(chēng)為采樣周期)對(duì)同一點(diǎn)數(shù)據(jù)重復(fù)采集。采集的數(shù)據(jù)大多是瞬時(shí)值,也可以是某段時(shí)間內(nèi)的一個(gè)特征值。準(zhǔn)確的數(shù)據(jù)測(cè)量是數(shù)據(jù)采集的基礎(chǔ)。數(shù)據(jù)測(cè)量方法有接觸式和非接觸式,檢測(cè)元件多種多樣。不論哪種方法和元件,均以不影響被測(cè)對(duì)象狀態(tài)和測(cè)量環(huán)境為前提,以保證數(shù)據(jù)的正確性。數(shù)據(jù)采集是從真實(shí)世界對(duì)象中獲得原始數(shù)據(jù)的過(guò)程。不準(zhǔn)確的數(shù)據(jù)采集將影響后續(xù)的數(shù)據(jù)處理并且最終得到無(wú)效的結(jié)果。數(shù)據(jù)采集方法的選擇不但依賴(lài)于數(shù)據(jù)源的物理性質(zhì),而且要考慮數(shù)據(jù)分析的目標(biāo)。2024/5/1111數(shù)據(jù)采集步驟在大數(shù)據(jù)價(jià)值鏈中,數(shù)據(jù)采集階段的任務(wù)是以數(shù)字形式將信息聚合,以待存儲(chǔ)和分析處理。數(shù)據(jù)采集過(guò)程可分為三個(gè)步驟,如圖所示。首先是數(shù)據(jù)收集(datacollection),數(shù)據(jù)來(lái)源包括日志文件、傳感器、Web爬蟲(chóng)等;其次是數(shù)據(jù)傳輸(datatransmission),經(jīng)過(guò)物理層和網(wǎng)絡(luò)層;最后是數(shù)據(jù)預(yù)處理(datapreprocessing),包括數(shù)據(jù)整合、清洗和冗余消除等。數(shù)據(jù)傳輸和數(shù)據(jù)預(yù)處理沒(méi)有嚴(yán)格的次序,數(shù)據(jù)預(yù)處理可以在數(shù)據(jù)傳輸之前或之后。2024/5/1112數(shù)據(jù)分類(lèi)按照數(shù)據(jù)的形態(tài),可以把數(shù)據(jù)分為結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)兩種。結(jié)構(gòu)化數(shù)據(jù)(如傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)數(shù)據(jù))的字段有固定的長(zhǎng)度和語(yǔ)義,計(jì)算機(jī)程序可以直接處理。非結(jié)構(gòu)化數(shù)據(jù)有文本數(shù)據(jù)、圖像數(shù)據(jù)、自然語(yǔ)言數(shù)據(jù)等,計(jì)算機(jī)程序無(wú)法直接處理,需要進(jìn)行格式轉(zhuǎn)換或信息提取。按照數(shù)據(jù)連接的方式,數(shù)據(jù)又可分為本地?cái)?shù)據(jù)和網(wǎng)絡(luò)數(shù)據(jù)等。2024/5/1113數(shù)據(jù)類(lèi)型描述不同的實(shí)體,其數(shù)據(jù)類(lèi)型可能不同,可分為:1.類(lèi)別(categorical)數(shù)據(jù)●名義(nominal)數(shù)據(jù):類(lèi)別沒(méi)有大小順序的數(shù)據(jù),如民族、性別、種族、顏色、院系、專(zhuān)業(yè)等。●序數(shù)(ordinal)數(shù)據(jù):類(lèi)別有大小順序的數(shù)據(jù),如成績(jī)等級(jí)、行業(yè)排名等。2.數(shù)值(numerical)數(shù)據(jù)●離散(discrete)數(shù)據(jù):是指其數(shù)值只能用自然數(shù)或整數(shù)單位計(jì)算的數(shù)據(jù),如企業(yè)個(gè)數(shù)、職工人數(shù)、設(shè)備臺(tái)數(shù)等?!襁B續(xù)(continuous)數(shù)據(jù):是指一定區(qū)間內(nèi)可以任意取值的數(shù)據(jù),其數(shù)值是連續(xù)不斷的,相鄰兩個(gè)數(shù)值之間可做無(wú)限分割,即可取無(wú)限個(gè)數(shù)值,如身高、體重、里程等。2024/5/1114數(shù)據(jù)采集方式按照不同的視角,數(shù)據(jù)采集有不同的方式。1.主動(dòng)/被動(dòng)視角按照數(shù)據(jù)采集的主動(dòng)還是被動(dòng)視角,數(shù)據(jù)采集可分為推(push)方式和拉(pull)方式。推方式的主動(dòng)權(quán)在數(shù)據(jù)源系統(tǒng)方,數(shù)據(jù)源系統(tǒng)方根據(jù)自己數(shù)據(jù)產(chǎn)生的方式、頻率以及數(shù)據(jù)量,采用一種適合數(shù)據(jù)源系統(tǒng)的方式將數(shù)據(jù)推送到數(shù)據(jù)處理系統(tǒng),其特點(diǎn)是數(shù)據(jù)量、數(shù)據(jù)格式以及數(shù)據(jù)提供頻率與數(shù)據(jù)生成方式相關(guān)。拉方式的主動(dòng)權(quán)則掌握在數(shù)據(jù)處理端,數(shù)據(jù)獲取的頻率、數(shù)據(jù)量和獲取方式完全由數(shù)據(jù)處理端決定。2024/5/1115數(shù)據(jù)采集方式2.即時(shí)性視角按照數(shù)據(jù)采集的即時(shí)性視角,數(shù)據(jù)采集又可分為實(shí)時(shí)采集與離線采集。實(shí)時(shí)采集是指在數(shù)據(jù)產(chǎn)生時(shí)立即對(duì)其進(jìn)行處理和分析,并將結(jié)果傳遞到目標(biāo)系統(tǒng)中。該方法通常用于需要快速響應(yīng)和即時(shí)分析的場(chǎng)景,如金融交易、在線廣告等。實(shí)時(shí)采集需要具備高速度、高可靠性和高擴(kuò)展性等特點(diǎn),以確保數(shù)據(jù)能夠及時(shí)傳輸和處理。離線采集是指將數(shù)據(jù)存儲(chǔ)在本地或遠(yuǎn)程存儲(chǔ)設(shè)備中,并在后續(xù)時(shí)間段內(nèi)對(duì)其進(jìn)行處理和分析。該方法通常用于需要大規(guī)模數(shù)據(jù)處理、長(zhǎng)時(shí)間分析和歷史數(shù)據(jù)回顧的場(chǎng)景,如機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘等。離線采集需要具備高容量、高效率和高靈活性等特點(diǎn),以確保能夠完成大規(guī)模數(shù)據(jù)的存儲(chǔ)和分析。2024/5/1116數(shù)據(jù)采集方法數(shù)據(jù)采集的對(duì)象和來(lái)源多種多樣,如傳感器、系統(tǒng)日志、數(shù)據(jù)庫(kù)和Web爬蟲(chóng)等,它們對(duì)應(yīng)的數(shù)據(jù)采集方法也存在差異。下面介紹幾種常見(jiàn)的數(shù)據(jù)來(lái)源及相應(yīng)采集方法。1.傳感器傳感器常用于測(cè)量物理環(huán)境變量并將其轉(zhuǎn)化為可讀的數(shù)字信號(hào)以待處理,根據(jù)測(cè)量類(lèi)型的不同,分為壓力、振動(dòng)、位移、紅外光、紫外光、溫度、濕敏、離子、微生物等傳感器。信息通過(guò)有線或無(wú)線網(wǎng)絡(luò)傳送到數(shù)據(jù)采集點(diǎn)。有線傳感器網(wǎng)絡(luò)通過(guò)網(wǎng)線收集傳感器的信息,這種方式適用于傳感器易于部署和管理的場(chǎng)景。無(wú)線傳感器網(wǎng)絡(luò)(wirelesssensornetwork,WSN)利用無(wú)線網(wǎng)絡(luò)作為信息傳輸?shù)妮d體,適用于沒(méi)有能量或通信的基礎(chǔ)設(shè)施的場(chǎng)合。無(wú)線傳感器網(wǎng)絡(luò)通常由大量微小傳感器節(jié)點(diǎn)構(gòu)成,微小傳感器由電池供電,被部署在應(yīng)用指定的地點(diǎn)收集感知數(shù)據(jù)。當(dāng)節(jié)點(diǎn)部署完成后,基站將發(fā)布網(wǎng)絡(luò)配置/管理或收集命令,來(lái)自不同節(jié)點(diǎn)的感知數(shù)據(jù)將被匯集并轉(zhuǎn)發(fā)到基站以待處理?;趥鞲衅鞯臄?shù)據(jù)采集系統(tǒng)被認(rèn)為是一個(gè)信息物理系統(tǒng)。2024/5/1117數(shù)據(jù)采集方法2.系統(tǒng)日志日志由數(shù)據(jù)源系統(tǒng)產(chǎn)生,以特殊的文件格式記錄系統(tǒng)的活動(dòng)。幾乎所有在數(shù)字設(shè)備上運(yùn)行的應(yīng)用的日志文件都非常有用,例如,Web服務(wù)器通常要在日志文件中記錄網(wǎng)站用戶的點(diǎn)擊、鍵盤(pán)輸入、訪問(wèn)行為以及其他屬性。用于捕獲用戶在網(wǎng)站上的活動(dòng)的Web服務(wù)器日志文件格式有三種類(lèi)型:NCSA通用日志文件格式、W3C擴(kuò)展日志文件格式和MicrosoftIIS日志文件格式。數(shù)據(jù)庫(kù)也可以用來(lái)替代文本文件存儲(chǔ)日志信息,以提高海量日志的查詢效率。在大數(shù)據(jù)領(lǐng)域,還可基于分布式的海量日志采集、聚合和傳輸系統(tǒng)Flume及支持高吞吐量的分布式發(fā)布訂閱消息系統(tǒng)進(jìn)行日志采集。2024/5/1118數(shù)據(jù)采集方法3.數(shù)據(jù)庫(kù)傳統(tǒng)企業(yè)會(huì)使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)(如MySQL和Oracle等)來(lái)存儲(chǔ)數(shù)據(jù)。隨著大數(shù)據(jù)時(shí)代的到來(lái),Redis、MongoDB和HBase等NoSQL數(shù)據(jù)庫(kù)(泛指非關(guān)系型數(shù)據(jù)庫(kù))逐漸在互聯(lián)網(wǎng)企業(yè)中得到廣泛使用。數(shù)據(jù)庫(kù)一般可通過(guò)應(yīng)用程序編程接口(applicationprogramminginterface,API)以主動(dòng)或被動(dòng)方式采集數(shù)據(jù),采集策略可基于定時(shí)或者數(shù)據(jù)庫(kù)觸發(fā)機(jī)制增量獲取或完整刷新等。獨(dú)立的ETL(extract-transform-load)技術(shù)可完整處理常見(jiàn)數(shù)據(jù)來(lái)源的采集、轉(zhuǎn)換和處理,通過(guò)對(duì)數(shù)據(jù)進(jìn)行提取、轉(zhuǎn)換、加載,最終挖掘數(shù)據(jù)的潛在價(jià)值。2024/5/1119數(shù)據(jù)采集方法4.Web爬蟲(chóng)Web爬蟲(chóng)(也稱(chēng)網(wǎng)絡(luò)爬蟲(chóng))是指從搜索引擎下載并存儲(chǔ)網(wǎng)頁(yè)的程序。Web爬蟲(chóng)按順序訪問(wèn)初始隊(duì)列中的一組統(tǒng)一資源定位符(uniformresourcelocator,URL),并為所有URL分配一個(gè)優(yōu)先級(jí),然后從隊(duì)列中獲得具有一定優(yōu)先級(jí)的URL,下載該網(wǎng)頁(yè),隨后解析網(wǎng)頁(yè)中包含的所有URL并添加這些新的URL到隊(duì)列中。這個(gè)過(guò)程一直重復(fù),直到爬蟲(chóng)程序停止為止。Web爬蟲(chóng)是網(wǎng)站應(yīng)用(如搜索引擎)的主要數(shù)據(jù)采集方式。Web爬蟲(chóng)數(shù)據(jù)采集過(guò)程由選擇策略、重訪策略、禮貌策略以及并行策略決定。選擇策略決定哪個(gè)網(wǎng)頁(yè)將被訪問(wèn);重訪策略決定何時(shí)檢查網(wǎng)頁(yè)是否更新;禮貌策略防止過(guò)度訪問(wèn)網(wǎng)站;并行策略則用于協(xié)調(diào)分布的爬蟲(chóng)程序。2024/5/1120數(shù)據(jù)傳輸原始數(shù)據(jù)采集后必須將其傳送到數(shù)據(jù)存儲(chǔ)基礎(chǔ)設(shè)施(如數(shù)據(jù)中心)等待進(jìn)一步處理。數(shù)據(jù)傳輸過(guò)程可以分為兩個(gè)階段:IP骨干網(wǎng)傳輸和數(shù)據(jù)中心傳輸,如圖所示。2024/5/1121數(shù)據(jù)傳輸1.IP骨干網(wǎng)傳輸IP骨干網(wǎng)提供高容量主干線路將大數(shù)據(jù)從數(shù)據(jù)源傳遞到數(shù)據(jù)中心。傳輸速率和容量取決于物理媒體和鏈路管理方法。(1)物理媒體:通常由許多光纜合并在一起增加容量,并需要擁有多條路徑以確保路徑失效時(shí)能進(jìn)行重路由。(2)鏈路管理:決定信號(hào)如何在物理媒體上傳輸。過(guò)去20年間,IPoverWDM技術(shù)得到了深入研究。波分復(fù)用技術(shù)(wavelengthdivisionmultiplexing,WDM)是在單根光纖上復(fù)用多個(gè)不同波長(zhǎng)的光載波信號(hào)。為了解決電信號(hào)帶寬的瓶頸問(wèn)題,正交頻分復(fù)用(orthogonalfrequencydivisionmultiplexing,OFDM)被認(rèn)為是未來(lái)的高速光傳輸技術(shù)的候選者。OFDM允許單個(gè)子載波的頻譜重疊,構(gòu)建數(shù)據(jù)流更靈活、資源有效使用的光網(wǎng)絡(luò)。2024/5/1122數(shù)據(jù)傳輸2.數(shù)據(jù)中心傳輸數(shù)據(jù)傳遞到數(shù)據(jù)中心后,將在數(shù)據(jù)中心內(nèi)部進(jìn)行存儲(chǔ)位置的調(diào)整和其他處理,這個(gè)過(guò)程稱(chēng)為數(shù)據(jù)中心傳輸,涉及數(shù)據(jù)中心體系架構(gòu)和傳輸協(xié)議。(1)數(shù)據(jù)中心體系架構(gòu)。數(shù)據(jù)中心由多個(gè)裝備了若干服務(wù)器的機(jī)架構(gòu)成,服務(wù)器通過(guò)數(shù)據(jù)中心內(nèi)部網(wǎng)絡(luò)連接。許多數(shù)據(jù)中心基于權(quán)威的2層或3層fat-tree結(jié)構(gòu)的商用交換機(jī)構(gòu)建。一些其他的拓?fù)浣Y(jié)構(gòu)也用于構(gòu)建更為高效的數(shù)據(jù)中心網(wǎng)絡(luò)。由于電子交換機(jī)的固有缺陷,在增加通信帶寬的同時(shí)減少能量消耗非常困難。數(shù)據(jù)中心網(wǎng)絡(luò)中的光互連技術(shù)能夠提高吞吐量、降低延遲和減少能量消耗,被認(rèn)為是有前途的解決方案。(2)傳輸協(xié)議。TCP和UDP是數(shù)據(jù)傳輸最重要的兩種協(xié)議,但是它們的性能在傳輸大量的數(shù)據(jù)時(shí)并不令人滿意。一些增強(qiáng)TCP功能的方法的目標(biāo)是提高鏈路吞吐率,并對(duì)長(zhǎng)短不一的混合TCP流提供可預(yù)測(cè)的小延遲。例如,DCTCP利用顯示擁塞通知對(duì)端主機(jī)提供多比特反饋。UDP協(xié)議適用于傳輸大量數(shù)據(jù),但是缺乏擁塞控制。因此高帶寬的UDP應(yīng)用必須自己實(shí)現(xiàn)擁塞控制機(jī)制,這是一項(xiàng)困難的任務(wù)并且會(huì)導(dǎo)致風(fēng)險(xiǎn)。2024/5/1123數(shù)據(jù)預(yù)處理數(shù)據(jù)源具有多樣性,數(shù)據(jù)集因干擾、冗余和一致性因素的影響而具有不同的質(zhì)量。從需求的角度來(lái)看,一些數(shù)據(jù)分析工具和應(yīng)用對(duì)數(shù)據(jù)質(zhì)量有著嚴(yán)格的要求。因此,在大數(shù)據(jù)系統(tǒng)中需要使用數(shù)據(jù)預(yù)處理技術(shù)來(lái)提高數(shù)據(jù)的質(zhì)量。主要的數(shù)據(jù)預(yù)處理技術(shù)包括數(shù)據(jù)整合、數(shù)據(jù)清洗、冗余消除、數(shù)據(jù)歸約等。1.數(shù)據(jù)整合數(shù)據(jù)整合是指在邏輯上和物理上把來(lái)自不同數(shù)據(jù)源的異構(gòu)數(shù)據(jù)進(jìn)行連接合并,為用戶提供一個(gè)統(tǒng)一的數(shù)據(jù)視圖。這些不同來(lái)源的異構(gòu)數(shù)據(jù)可能存在命名和格式不統(tǒng)一、數(shù)據(jù)重復(fù)、數(shù)據(jù)類(lèi)型不一致等問(wèn)題,因此,需要根據(jù)一定的規(guī)則將這些數(shù)據(jù)進(jìn)行必要的處理和格式轉(zhuǎn)換,然后進(jìn)行連接合并,形成統(tǒng)一的數(shù)據(jù)視圖。2.數(shù)據(jù)清洗數(shù)據(jù)清洗(cleaning)是指在數(shù)據(jù)集中發(fā)現(xiàn)不準(zhǔn)確、不完整或不合理的數(shù)據(jù),并對(duì)這些數(shù)據(jù)進(jìn)行修補(bǔ)或刪除以提高數(shù)據(jù)質(zhì)量。一個(gè)通用的數(shù)據(jù)清洗過(guò)程由5個(gè)步驟構(gòu)成:定義錯(cuò)誤類(lèi)型,搜索并標(biāo)識(shí)錯(cuò)誤實(shí)例,改正錯(cuò)誤,文檔記錄錯(cuò)誤實(shí)例和錯(cuò)誤類(lèi)型,修改數(shù)據(jù)錄入程序以減少未來(lái)的錯(cuò)誤。2024/5/1124數(shù)據(jù)預(yù)處理此外,格式檢查、完整性檢查、合理性檢查和極限檢查也在數(shù)據(jù)清洗過(guò)程中完成。數(shù)據(jù)清洗對(duì)保持?jǐn)?shù)據(jù)的一致和更新起著重要作用,因此被用于銀行、保險(xiǎn)、零售、電信和交通等多個(gè)領(lǐng)域。在電子商務(wù)領(lǐng)域,盡管大多數(shù)數(shù)據(jù)通過(guò)電子方式收集,但仍存在數(shù)據(jù)質(zhì)量問(wèn)題。影響數(shù)據(jù)質(zhì)量的因素包括技術(shù)、業(yè)務(wù)和管理三個(gè)方面,技術(shù)因素涉及數(shù)據(jù)來(lái)源、數(shù)據(jù)采集、數(shù)據(jù)傳輸和數(shù)據(jù)裝載等方面,業(yè)務(wù)因素涉及業(yè)務(wù)不清晰、輸入不規(guī)范、數(shù)據(jù)造假等方面,管理因素涉及人員素質(zhì)、管理機(jī)制、數(shù)據(jù)規(guī)范、流程制度等方面。數(shù)據(jù)清洗對(duì)隨后的數(shù)據(jù)分析非常重要,因?yàn)樗芴岣邤?shù)據(jù)分析的準(zhǔn)確性。但是數(shù)據(jù)清洗依賴(lài)復(fù)雜的關(guān)系模型,這會(huì)帶來(lái)額外的計(jì)算和延遲開(kāi)銷(xiāo),因此,必須在數(shù)據(jù)清洗模型的復(fù)雜性和分析結(jié)果的準(zhǔn)確性之間進(jìn)行平衡。2024/5/1125數(shù)據(jù)預(yù)處理3.冗余消除數(shù)據(jù)冗余是指數(shù)據(jù)的重復(fù)或過(guò)剩,這是許多數(shù)據(jù)集的常見(jiàn)問(wèn)題。數(shù)據(jù)冗余無(wú)疑會(huì)增加傳輸開(kāi)銷(xiāo),浪費(fèi)存儲(chǔ)空間,導(dǎo)致數(shù)據(jù)不一致,降低可靠性。因此許多研究提出了數(shù)據(jù)冗余減少機(jī)制,例如冗余檢測(cè)和數(shù)據(jù)壓縮。由廣泛部署的攝像頭收集的圖像和視頻數(shù)據(jù)存在大量的數(shù)據(jù)冗余。在視頻監(jiān)控?cái)?shù)據(jù)中,大量的圖像和視頻數(shù)據(jù)存在著時(shí)間、空間和統(tǒng)計(jì)上的冗余。視頻壓縮技術(shù)被用于減少視頻數(shù)據(jù)的冗余,許多重要的標(biāo)準(zhǔn)(如MPEG-2,MPEG-4,H.263,H.264/AVC)已被應(yīng)用以減少存儲(chǔ)和傳輸?shù)呢?fù)擔(dān)。對(duì)于普遍的數(shù)據(jù)傳輸和存儲(chǔ),數(shù)據(jù)去重技術(shù)是專(zhuān)用的數(shù)據(jù)壓縮技術(shù),用于消除重復(fù)數(shù)據(jù)的副本。數(shù)據(jù)去重技術(shù)能夠顯著地減少存儲(chǔ)空間的占用,對(duì)大數(shù)據(jù)存儲(chǔ)系統(tǒng)具有非常重要的作用。2024/5/1126數(shù)據(jù)預(yù)處理4.數(shù)據(jù)歸約數(shù)據(jù)整合與清洗無(wú)法改變數(shù)據(jù)集的規(guī)模,依然需要通過(guò)技術(shù)手段降低數(shù)據(jù)規(guī)模,這就是數(shù)據(jù)歸約。數(shù)據(jù)歸約采用編碼方案,通過(guò)小波變換或主成分分析來(lái)有效地壓縮原始數(shù)據(jù),或者通過(guò)特征提取技術(shù)進(jìn)行屬性子集的選擇或重造。除了前面提到的數(shù)據(jù)預(yù)處理方法,還有一些對(duì)特定數(shù)據(jù)對(duì)象(這些數(shù)據(jù)對(duì)象通常具有高維特征矢量)進(jìn)行預(yù)處理的技術(shù),如特征提取技術(shù),在多媒體搜索和域名系統(tǒng)(DNS)分析中起著重要作用。數(shù)據(jù)變形技術(shù)則通常用于處理分布式數(shù)據(jù)源產(chǎn)生的異構(gòu)數(shù)據(jù),對(duì)商業(yè)數(shù)據(jù)的處理非常有用。然而,沒(méi)有一個(gè)統(tǒng)一的數(shù)據(jù)預(yù)處理過(guò)程和單一的技術(shù)能夠用于多樣化的數(shù)據(jù)集,必須考慮數(shù)據(jù)集的特性、需要解決的問(wèn)題、性能需求和其他因素來(lái)選擇合適的數(shù)據(jù)預(yù)處理方案。2024/5/1127數(shù)據(jù)存儲(chǔ)概述2024/5/1128什么是數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)是指數(shù)據(jù)以某種格式記錄在計(jì)算機(jī)內(nèi)部或外部存儲(chǔ)介質(zhì)上。因此,它包括兩部分,即存儲(chǔ)格式與存儲(chǔ)介質(zhì)。1.存儲(chǔ)格式文件:文字文件,壓縮文件,圖形圖像,動(dòng)畫(huà),音頻、視頻文件等。數(shù)據(jù)庫(kù):關(guān)系型數(shù)據(jù)庫(kù),非關(guān)系型數(shù)據(jù)庫(kù)。2.存儲(chǔ)介質(zhì)磁盤(pán)和磁帶都是常用的存儲(chǔ)介質(zhì)。數(shù)據(jù)存儲(chǔ)組織方式因存儲(chǔ)介質(zhì)而異。在磁帶上數(shù)據(jù)僅采用順序存取方式;在磁盤(pán)上則可按使用要求采用順序存取或直接存取方式。數(shù)據(jù)存儲(chǔ)方式與數(shù)據(jù)文件組織密切相關(guān),其關(guān)鍵在于建立記錄的邏輯與物理順序間的對(duì)應(yīng)關(guān)系,確定存儲(chǔ)地址,以提高數(shù)據(jù)存取速度。2024/5/1129存儲(chǔ)格式(一)文件形式1.本地文件文件存儲(chǔ)在本地節(jié)點(diǎn),可不通過(guò)網(wǎng)絡(luò)直接訪問(wèn)。文字文件類(lèi)型:如txt,csv,xml,html,doc等。壓縮文件類(lèi)型:如zip,rar等。圖形圖像類(lèi)型:如jpg,gif,bmp等。動(dòng)畫(huà)類(lèi)型:如gif,swf等。音頻、視頻類(lèi)型:如wav,mp3,mp4,avi等。2.分布式文件系統(tǒng)分布式文件系統(tǒng)(distributedfilesystem)是指文件系統(tǒng)管理的物理存儲(chǔ)資源不一定直接連接在本地節(jié)點(diǎn)上,而是通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)與節(jié)點(diǎn)相連。分布式文件系統(tǒng)的設(shè)計(jì)基于客戶端/服務(wù)器模式。一個(gè)典型的網(wǎng)絡(luò)可能包括多個(gè)供多用戶訪問(wèn)的服務(wù)器。另外,對(duì)等特性允許一些系統(tǒng)扮演客戶端和服務(wù)器的雙重角色。分布式文件系統(tǒng)可以有效解決數(shù)據(jù)的存儲(chǔ)和管理難題:將固定于某個(gè)地點(diǎn)的某個(gè)文件系統(tǒng)擴(kuò)展到任意多個(gè)地點(diǎn)/多個(gè)文件系統(tǒng),眾多節(jié)點(diǎn)組成一個(gè)文件系統(tǒng)網(wǎng)絡(luò)。每個(gè)節(jié)點(diǎn)可以分布在不同的地點(diǎn),通過(guò)網(wǎng)絡(luò)進(jìn)行節(jié)點(diǎn)間的通信和數(shù)據(jù)傳輸。2024/5/1130存儲(chǔ)格式(二)數(shù)據(jù)庫(kù)形式數(shù)據(jù)庫(kù)在結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和管理方面應(yīng)用非常廣泛,它大致可分為兩類(lèi),即關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)。常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)有Oracle、DB2、MySQL等,常見(jiàn)的非關(guān)系型數(shù)據(jù)庫(kù)有MongoDB、HBase等。下圖以思維導(dǎo)圖形式展示了數(shù)據(jù)庫(kù)的大致分類(lèi)。2024/5/1131存儲(chǔ)格式(三)大數(shù)據(jù)形式1.分布式系統(tǒng)分布式系統(tǒng)包含多個(gè)自主的處理單元,通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)互連來(lái)協(xié)作完成分配的任務(wù),其分而治之的策略能夠更好地處理大規(guī)模的數(shù)據(jù)分析問(wèn)題。分布式系統(tǒng)主要包含以下兩類(lèi):(1)分布式文件系統(tǒng):存儲(chǔ)管理需要多種技術(shù)的協(xié)同工作,文件系統(tǒng)為其提供最底層存儲(chǔ)能力的支持。其中Hadoop分布式文件系統(tǒng)(Hadoopdistributedfilesystem,HDFS)是一個(gè)高度容錯(cuò)性系統(tǒng),適用于批量處理,能夠提供高吞吐量的數(shù)據(jù)訪問(wèn)。(2)分布式鍵值系統(tǒng):分布式鍵值系統(tǒng)用于存儲(chǔ)關(guān)系簡(jiǎn)單的半結(jié)構(gòu)化數(shù)據(jù)。典型的分布式鍵值系統(tǒng)有AmazonDynamo,獲得廣泛應(yīng)用和關(guān)注的對(duì)象存儲(chǔ)(objectstorage)技術(shù)也可以視為分布式鍵值系統(tǒng),其存儲(chǔ)和管理的是對(duì)象而不是數(shù)據(jù)塊。2024/5/1132存儲(chǔ)格式2.NoSQL數(shù)據(jù)庫(kù)關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)無(wú)法滿足Web2.0的需求。主要表現(xiàn)為:無(wú)法滿足海量數(shù)據(jù)的管理需求和數(shù)據(jù)高并發(fā)的需求,不太具備高可擴(kuò)展性和高可用性。相比之下,NoSQL數(shù)據(jù)庫(kù)的優(yōu)勢(shì)為:可以支持超大規(guī)模的數(shù)據(jù)存儲(chǔ),靈活的數(shù)據(jù)模型可以很好地支持Web2.0的應(yīng)用,具有強(qiáng)大的橫向擴(kuò)展能力等。典型的NoSQL數(shù)據(jù)庫(kù)包含以下幾種:鍵值數(shù)據(jù)庫(kù)、列數(shù)據(jù)庫(kù)、文檔數(shù)據(jù)庫(kù)和圖數(shù)據(jù)庫(kù)。3.云數(shù)據(jù)庫(kù)云數(shù)據(jù)庫(kù)是一種基于云計(jì)算技術(shù)發(fā)展的共享基礎(chǔ)架構(gòu)的方法,是部署和虛擬化在云計(jì)算環(huán)境中的數(shù)據(jù)庫(kù)。云數(shù)據(jù)庫(kù)并非一種全新的數(shù)據(jù)庫(kù)技術(shù),而只是以服務(wù)的方式提供數(shù)據(jù)庫(kù)功能。云數(shù)據(jù)庫(kù)所采用的數(shù)據(jù)模型可以是關(guān)系型數(shù)據(jù)庫(kù)所使用的關(guān)系模型(如華為、阿里巴巴和微軟的云數(shù)據(jù)庫(kù)都采用了關(guān)系模型)。2024/5/1133存儲(chǔ)方式數(shù)據(jù)存儲(chǔ)方式主要有三類(lèi),即直接附加存儲(chǔ)、網(wǎng)絡(luò)附加存儲(chǔ)及存儲(chǔ)區(qū)域網(wǎng)絡(luò)。1.直接附加存儲(chǔ)直接附加存儲(chǔ)(directattachedstorage,DAS)方式與普通的計(jì)算機(jī)存儲(chǔ)架構(gòu)一樣,外部存儲(chǔ)設(shè)備都是直接掛接在服務(wù)器內(nèi)部總線上,數(shù)據(jù)存儲(chǔ)設(shè)備是整個(gè)服務(wù)器結(jié)構(gòu)的一部分。DAS方式的主要適用環(huán)境有小型網(wǎng)絡(luò)(數(shù)據(jù)存儲(chǔ)量小,簡(jiǎn)單經(jīng)濟(jì))、地理位置分散的網(wǎng)絡(luò)、特殊應(yīng)用服務(wù)器(如微軟的集群服務(wù)器或某些數(shù)據(jù)庫(kù)使用的原始分區(qū),均要求存儲(chǔ)設(shè)備直接連接到應(yīng)用服務(wù)器)。DAS的優(yōu)點(diǎn)在于簡(jiǎn)單經(jīng)濟(jì),它的缺點(diǎn)包括效率低,不方便進(jìn)行數(shù)據(jù)保護(hù),無(wú)法共享。2024/5/1134存儲(chǔ)方式2.網(wǎng)絡(luò)附加存儲(chǔ)網(wǎng)絡(luò)附加存儲(chǔ)(networkattachedstorage,NAS)方式全面改進(jìn)了以前低效的DAS方式。它采用一種單獨(dú)為網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)開(kāi)發(fā)的獨(dú)立于服務(wù)器的文件服務(wù)器來(lái)連接所存儲(chǔ)的設(shè)備,自形成一個(gè)網(wǎng)絡(luò),數(shù)據(jù)存儲(chǔ)不再是服務(wù)器的附屬,而是作為獨(dú)立網(wǎng)絡(luò)節(jié)點(diǎn)存在于網(wǎng)絡(luò)之中,可被所有網(wǎng)絡(luò)用戶共享。NAS的優(yōu)點(diǎn)包括:真正的即插即用;存儲(chǔ)部署簡(jiǎn)單;存儲(chǔ)設(shè)備位置非常靈活;管理容易且成本低。NAS的缺點(diǎn)包括存儲(chǔ)性能較低,可靠度不高。2024/5/1135存儲(chǔ)方式3.存儲(chǔ)區(qū)域網(wǎng)絡(luò)存儲(chǔ)區(qū)域網(wǎng)絡(luò)(storageareanetwork,SAN)方式創(chuàng)造了存儲(chǔ)的網(wǎng)絡(luò)化。存儲(chǔ)網(wǎng)絡(luò)化順應(yīng)了計(jì)算機(jī)服務(wù)器體系結(jié)構(gòu)網(wǎng)絡(luò)化的趨勢(shì)。SAN的支撐技術(shù)是光纖通道(fiberchannel,FC)技術(shù),它是美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(AmericanNationalStandardsInstitute,ANSI)為網(wǎng)絡(luò)和通道I/O接口建立的一個(gè)標(biāo)準(zhǔn)集成。FC技術(shù)支持HIPPI、IPI、SCSI、IP、ATM等多種高級(jí)協(xié)議,其最大特性是將網(wǎng)絡(luò)和設(shè)備的通信協(xié)議與傳輸物理介質(zhì)隔離開(kāi),這樣多種協(xié)議可在同一個(gè)物理連接上同時(shí)傳送。SAN的硬件基礎(chǔ)設(shè)施是光纖通道,用光纖通道構(gòu)建的SAN由以下三個(gè)部分組成:存儲(chǔ)和備份設(shè)備:包括磁帶、磁盤(pán)和光盤(pán)庫(kù)等;光纖通道網(wǎng)絡(luò)連接部件:包括主機(jī)總線適配卡、驅(qū)動(dòng)程序、光纜、集線器、交換機(jī)、光纖通道和SCSI間的橋接器;應(yīng)用和管理軟件:包括備份軟件、存儲(chǔ)資源管理軟件和存儲(chǔ)設(shè)備管理軟件。SAN的優(yōu)點(diǎn)包括網(wǎng)絡(luò)部署容易,具有高速的存儲(chǔ)性能和良好的擴(kuò)展能力等。2024/5/1136存儲(chǔ)方式4.三類(lèi)存儲(chǔ)方式比較從連接方式上對(duì)比,DAS采用了存儲(chǔ)設(shè)備直接連接應(yīng)用服務(wù)器的方式,具有一定的靈活性和限制性;NAS通過(guò)網(wǎng)絡(luò)技術(shù)連接存儲(chǔ)設(shè)備和應(yīng)用服務(wù)器,存儲(chǔ)設(shè)備位置靈活,隨著萬(wàn)兆網(wǎng)的出現(xiàn),傳輸速率有了很大的提高;SAN則是通過(guò)光纖通道技術(shù)連接存儲(chǔ)設(shè)備和應(yīng)用服務(wù)器,具有很高的傳輸速率和很好的擴(kuò)展性能。三種存儲(chǔ)方式各有優(yōu)勢(shì),相互共存,占據(jù)了磁盤(pán)存儲(chǔ)市場(chǎng)的70%以上。SAN和NAS產(chǎn)品的價(jià)格仍然遠(yuǎn)遠(yuǎn)高于DAS,許多用戶出于價(jià)格考慮選擇低效率的直連存儲(chǔ)而不是高效率的共享存儲(chǔ)。2024/5/1137Python相關(guān)數(shù)據(jù)科學(xué)工具2024/5/1138Python相關(guān)數(shù)據(jù)科學(xué)工具根據(jù)KDnuggets()2017—2019年的調(diào)研結(jié)果(見(jiàn)下圖),Python已然是數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)領(lǐng)域使用排名第一的軟件工具。因此,我們有必要了解一下Python相關(guān)數(shù)據(jù)科學(xué)工具。2024/5/1139Python相關(guān)開(kāi)發(fā)環(huán)境與工具可用于Python的代碼編輯器有Vim、ATOM、VisualStudioCode等,集成開(kāi)發(fā)環(huán)境(integrateddevelopmentenvironment,IDE)有PyCharm、LiClipse、Spyder、基于交互式IPython的JupyterNotebook等。1.Anaconda——一站式數(shù)據(jù)科學(xué)工具Anaconda內(nèi)置集成了豐富的數(shù)據(jù)分析和機(jī)器學(xué)習(xí)模塊,如NumPy、pandas、matplotlib、SciPy、JupyterNotebook、spyder等,如圖所示。如何安裝Anaconda,請(qǐng)參考:/anaconda/install/windows/。2024/5/1140Python相關(guān)開(kāi)發(fā)環(huán)境與工具本書(shū)使用Anaconda3中基于Python3的JupyterNotebook作為開(kāi)發(fā)環(huán)境,如圖1-8所示。當(dāng)在瀏覽器中編輯JupyterNotebook時(shí),JupyterNotebook的內(nèi)容被寫(xiě)入文件后綴名為“.ipynb”的文件。2024/5/1141Python數(shù)據(jù)科學(xué)相關(guān)模塊1.pandaspandas是Python強(qiáng)大、靈活的數(shù)據(jù)分析和探索工具,包含Series、DataFrame等高級(jí)數(shù)據(jù)結(jié)構(gòu)和工具,安裝pandas可使Python處理數(shù)據(jù)變得非??焖俸秃?jiǎn)單。pandas是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的,它納入了大量的庫(kù)和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效的操作大型數(shù)據(jù)集所需要的工具。pandas還包含了高級(jí)數(shù)據(jù)結(jié)構(gòu)以及讓數(shù)據(jù)分析變得快速、簡(jiǎn)單的工具。pandas的主要優(yōu)點(diǎn)如下:建立在numpy之上,使得應(yīng)用numpy變得簡(jiǎn)單。數(shù)據(jù)結(jié)構(gòu)帶有坐標(biāo)軸,支持自動(dòng)或明確的數(shù)據(jù)對(duì)齊。這能防止由于數(shù)據(jù)結(jié)構(gòu)沒(méi)有對(duì)齊以及處理不同來(lái)源、采用不同索引的數(shù)據(jù)而產(chǎn)生的常見(jiàn)錯(cuò)誤。更容易處理缺失數(shù)據(jù),是進(jìn)行數(shù)據(jù)清洗/整理的最好工具。可合并流行數(shù)據(jù)庫(kù)(如基于SQL的數(shù)據(jù)庫(kù))。2024/5/1142Python數(shù)據(jù)科學(xué)相關(guān)模塊2.numpynumpy提供數(shù)組支持以及相應(yīng)的高效處理函數(shù),是Python數(shù)據(jù)分析的基礎(chǔ),也是scipy、pandas等數(shù)據(jù)處理和科學(xué)計(jì)算庫(kù)最基本的函數(shù)功能庫(kù),其數(shù)據(jù)類(lèi)型對(duì)Python數(shù)據(jù)分析十分有用。numpy提供了兩種基本對(duì)象:ndarray和ufunc。ndarray是存儲(chǔ)單一數(shù)據(jù)類(lèi)型的多維數(shù)組,而ufunc是能夠?qū)?shù)組進(jìn)行處理的函數(shù)。numpy的功能如下:可對(duì)n維數(shù)組(一種快速、高效使用內(nèi)存的多維數(shù)組)提供矢量化數(shù)學(xué)運(yùn)算。可以不使用循環(huán)就對(duì)整個(gè)數(shù)組內(nèi)的數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)數(shù)學(xué)運(yùn)算。便于將數(shù)據(jù)傳送到用低級(jí)語(yǔ)言(C/C)編寫(xiě)的外部庫(kù),也便于外部庫(kù)以numpy數(shù)組形式返回?cái)?shù)據(jù)。不提供高級(jí)數(shù)據(jù)分析功能,但可以更加深刻地理解numpy數(shù)組和面向數(shù)組的計(jì)算。2024/5/1143Python數(shù)據(jù)科學(xué)相關(guān)模塊3.Web爬蟲(chóng)(1)Scrapy。Scrapy是專(zhuān)為爬蟲(chóng)而生的工具,具有URL讀取、HTML解析、數(shù)據(jù)存儲(chǔ)等功能,可以使用Twisted異步網(wǎng)絡(luò)庫(kù)來(lái)處理網(wǎng)絡(luò)通信,架構(gòu)清晰且包含各種中間件接口,可以靈活地滿足各種需求。(2)Selenium?;诓煌?lèi)型瀏覽器的驅(qū)動(dòng),模擬瀏覽器的操作,以此獲取動(dòng)態(tài)網(wǎng)頁(yè)內(nèi)容。(3)其他基礎(chǔ)網(wǎng)頁(yè)獲取模塊。如BeautifulSoup,PyQuery,urlib,requests等。4.matplotlibmatplotlib是強(qiáng)大的數(shù)據(jù)可視化工具和繪圖庫(kù),主要用于繪制數(shù)據(jù)圖表,它提供了繪制各類(lèi)可視化圖形的命令字庫(kù)和簡(jiǎn)單接口,可以使用戶輕松掌握?qǐng)D形的格式,繪制各類(lèi)可視化圖形。使用matplotlib可以定制所做圖表的任一方面。它支持所有操作系統(tǒng)下不同的圖形用戶界面(graphicaluserinterface,GUI)后端,并且可以將圖形輸出為常見(jiàn)的矢量圖和圖形測(cè)試,如PDF、SVG、JPG、PNG、BMP、GIF等。通過(guò)matplotlib數(shù)據(jù)繪圖,可以將枯燥的數(shù)字轉(zhuǎn)化成人們?nèi)菀捉邮艿膱D表。matplotlib是一套基于numpy的Python包,有一套允許定制各種屬性的默認(rèn)設(shè)置,可以控制matplotlib中的每一個(gè)默認(rèn)屬性:圖像大小、每英寸點(diǎn)數(shù)、線寬、色彩和樣式、子圖、坐標(biāo)軸、網(wǎng)格屬性、文字和文字屬性。2024/5/1144Python數(shù)據(jù)科學(xué)相關(guān)模塊5.scipyscipy是一組專(zhuān)門(mén)解決科學(xué)計(jì)算中各種標(biāo)準(zhǔn)問(wèn)題域的包的集合,建立在numpy的基礎(chǔ)上,提供了更多方便易用的高級(jí)科學(xué)計(jì)算功能,包括優(yōu)化、信號(hào)處理、統(tǒng)計(jì)分析、插值、線性代數(shù)等各種功能和用法,如約束優(yōu)化、統(tǒng)計(jì)描述、統(tǒng)計(jì)分布、假設(shè)檢驗(yàn)、濾波、快速傅里葉變換、線性插值、積分、常微分方程求解等。6.機(jī)器學(xué)習(xí)與深度學(xué)習(xí)sklearn是Python常用的機(jī)器學(xué)習(xí)工具包,它提供了完善的機(jī)器學(xué)習(xí)工具箱,是支持?jǐn)?shù)據(jù)預(yù)處理、分類(lèi)、回歸、聚類(lèi)、預(yù)測(cè)和模型分析等功能的強(qiáng)大的機(jī)器學(xué)習(xí)庫(kù),依賴(lài)于numpy、scipy和matplotlib等。sklearn有六種主要功能:分類(lèi)、回歸、聚類(lèi)、數(shù)據(jù)降維、模型選擇、數(shù)據(jù)預(yù)處理。另外,sklearn還自帶一些經(jīng)典的數(shù)據(jù)集,比如用于分類(lèi)的iris和digits數(shù)據(jù)集,用于回歸分析的bostonhouseprices數(shù)據(jù)集。深度學(xué)習(xí)的工具庫(kù)較多,如TensorFlow、PyTorch、Keras、百度飛槳等。其中Keras基于Theano,依賴(lài)于numpy和scipy,利用它可以構(gòu)建普通的神經(jīng)網(wǎng)絡(luò)和各種深度學(xué)習(xí)模型,如自然語(yǔ)言處理、圖像識(shí)別、自編碼器、循環(huán)神經(jīng)網(wǎng)絡(luò)、遞歸神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)等。2024/5/1145Python數(shù)據(jù)科學(xué)相關(guān)模塊7.Gensim自然語(yǔ)言處理工具庫(kù)也比較豐富,如SnowNLP、Jieba、Gensim等。其中Gensim是用來(lái)做文本主題模型的庫(kù),常用于處理語(yǔ)言方面的問(wèn)題,支持TF-IDF、LSA、LDA和Word2Vec等多種主題模型算法,支持流式訓(xùn)練,并提供了諸如相似度計(jì)算、信息檢索等一些常用任務(wù)的應(yīng)用程序編程接口。2024/5/114647Question?問(wèn)題?2024/5/11第二章
Python基礎(chǔ)《數(shù)據(jù)采集與處理:基于Python》2024/5/11482024/5/1149教學(xué)目標(biāo)本章學(xué)習(xí)目標(biāo)1.了解Python的特點(diǎn)和相關(guān)開(kāi)發(fā)環(huán)境;2.掌握Python的基本語(yǔ)法、控制結(jié)構(gòu)、異常與處理及函數(shù)的封裝和使用等;3.理解Python常用數(shù)據(jù)類(lèi)型和數(shù)據(jù)結(jié)構(gòu)(如列表、元組、字典和集合等)的特點(diǎn),熟練掌握其常用操作方式。本章提綱1、Python簡(jiǎn)介2、Python基本語(yǔ)法與命令3、運(yùn)算符、表達(dá)式與內(nèi)置對(duì)象4、函數(shù)5、異常及其處理Python簡(jiǎn)介2024/5/1150什么是PythonPython是一種高層次的結(jié)合了解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言,是一門(mén)跨平臺(tái)、開(kāi)源、免費(fèi)的解釋型高級(jí)動(dòng)態(tài)編程語(yǔ)言。Python支持命令式編程、函數(shù)式編程,完全支持面向?qū)ο蟪绦蛟O(shè)計(jì),擁有大量的擴(kuò)展庫(kù)。Python是交互式語(yǔ)言,可以在一個(gè)Python提示符下直接互動(dòng)執(zhí)行程序;Python也是“膠水語(yǔ)言”,可以把多種不同語(yǔ)言編寫(xiě)的程序融合到一起,實(shí)現(xiàn)無(wú)縫拼接,更好地發(fā)揮不同語(yǔ)言和工具的優(yōu)勢(shì),滿足不同應(yīng)用領(lǐng)域的需求;Python是初學(xué)者的語(yǔ)言,對(duì)初級(jí)程序員而言,它支持廣泛的應(yīng)用程序開(kāi)發(fā),包括簡(jiǎn)單的文字處理、WWW瀏覽器、游戲等。2024/5/1151什么是PythonPython的特點(diǎn)如下:易于學(xué)習(xí):Python的關(guān)鍵字相對(duì)較少,結(jié)構(gòu)簡(jiǎn)單,有明確定義的語(yǔ)法,學(xué)習(xí)起來(lái)更加容易。易于閱讀:Python代碼的定義更清晰。易于維護(hù):Python的成功在于它的源代碼相當(dāng)容易維護(hù)。廣泛的標(biāo)準(zhǔn)庫(kù):Python的最大優(yōu)勢(shì)之一是擁有豐富的庫(kù),而且可以跨平臺(tái),在Unix、Windows和macOS上都兼容得很好?;?dòng)模式:支持互動(dòng)模式,可以從終端輸入執(zhí)行代碼并獲得結(jié)果,進(jìn)行互動(dòng)測(cè)試和調(diào)試代碼片段??梢浦?基于其開(kāi)放源代碼的特性,Python可被移植到許多平臺(tái)(即可以在許多平臺(tái)工作)??蓴U(kuò)展:如果需要一段運(yùn)行很快的關(guān)鍵代碼,或者是編寫(xiě)一些不愿意開(kāi)放的算法,那么可以使用C或C完成此部分程序,然后從Python程序中調(diào)用。數(shù)據(jù)庫(kù):Python提供了所有主要的商業(yè)數(shù)據(jù)庫(kù)的接口。GUI編程:Python支持創(chuàng)建GUI,它可以移植到許多系統(tǒng)中調(diào)用??汕度?可以將Python嵌入C/C程序中,讓程序獲得“腳本化”的能力。2024/5/1152為什么選擇Python在眾多解釋型語(yǔ)言中,Python最大的特點(diǎn)是擁有一個(gè)巨大且活躍的科學(xué)計(jì)算社區(qū)。進(jìn)入21世紀(jì)以來(lái),在行業(yè)應(yīng)用和學(xué)術(shù)研究中采用Python進(jìn)行科學(xué)計(jì)算的勢(shì)頭越來(lái)越猛。近年來(lái),由于Python有不斷改良的庫(kù)(主要是pandas),其已成為數(shù)據(jù)處理任務(wù)的一大代替方案。結(jié)合其在通用編程方面的強(qiáng)大實(shí)力,完全可以只用Python一種語(yǔ)言來(lái)構(gòu)建以數(shù)據(jù)為中心的應(yīng)用程序。作為一個(gè)科學(xué)計(jì)算平臺(tái),Python的成功源于其能夠輕松地集成C、C以及Fortran代碼。大部分現(xiàn)代計(jì)算機(jī)環(huán)境都利用了一些Fortran和C庫(kù)來(lái)實(shí)現(xiàn)線性代數(shù)、優(yōu)選、積分、快速傅里葉變換以及其他諸如此類(lèi)的算法。選擇Python進(jìn)行數(shù)據(jù)采集、處理與分析的理由如下。1.語(yǔ)言排行榜居首位雖然Python是開(kāi)發(fā)較早的編程語(yǔ)言,但近年來(lái)反而變得越來(lái)越流行,在KDnuggets調(diào)查的數(shù)據(jù)科學(xué)與機(jī)器學(xué)習(xí)工具排行榜中,Python自2017年一直居于首位。2024/5/1153為什么選擇Python2.語(yǔ)言簡(jiǎn)潔、優(yōu)美,功能強(qiáng)大Python的語(yǔ)法非常接近英語(yǔ),它去掉了傳統(tǒng)的C/Java使用大括號(hào)來(lái)區(qū)分一個(gè)方法體或者類(lèi)的形式,采用強(qiáng)制縮進(jìn)來(lái)表示一個(gè)方法體或者類(lèi),語(yǔ)言風(fēng)格統(tǒng)一且優(yōu)美。Python內(nèi)置了很多高效的庫(kù),比如,同樣一項(xiàng)工作,C語(yǔ)言可能需要1000行代碼,Java需要100行代碼,Python可能只需要10行代碼,而且桌面應(yīng)用、Web開(kāi)發(fā)、自動(dòng)化測(cè)試運(yùn)維、爬蟲(chóng)、人工智能及大數(shù)據(jù)處理都能使用Python來(lái)完成。3.跨平臺(tái)很多流行編程語(yǔ)言(如Java、C、C)都能跨平臺(tái)而且開(kāi)源,Python也是如此。由于它是開(kāi)源的,所以也具有可移植性。你可以隨處運(yùn)行Python,換句話說(shuō),在Windows上寫(xiě)的代碼,也可以很方便地在Linux、macOS上運(yùn)行。2024/5/1154為什么選擇Python4.社區(qū)人氣火爆Python有非常知名的社區(qū),而且人氣很火爆,除了Python官網(wǎng),在GitHub、OpenStack等網(wǎng)站上也有很多Python開(kāi)源庫(kù)和討論社區(qū)。5.被眾多知名大公司使用國(guó)外非常有名的谷歌、臉書(shū)、雅虎、YouTube,還有美國(guó)宇航局(NASA)以及著名的開(kāi)源云計(jì)算平臺(tái)OpenStack都使用Python,國(guó)內(nèi)的豆瓣也不例外。6.支持全棧開(kāi)發(fā)除了主要應(yīng)用于數(shù)據(jù)分析與數(shù)據(jù)科學(xué)領(lǐng)域,Python還支持Web應(yīng)用、桌面應(yīng)用、服務(wù)端程序、游戲等各類(lèi)應(yīng)用和服務(wù)程序的開(kāi)發(fā)。2024/5/1155Python發(fā)展歷史與版本Python是吉多·范羅蘇姆于20世紀(jì)80年代末90年代初在荷蘭國(guó)家數(shù)學(xué)與計(jì)算機(jī)科學(xué)研究中心設(shè)計(jì)出來(lái)的。Python本身也是由諸多其他語(yǔ)言發(fā)展而來(lái)的,比如ABC、Modula-3、C、C、Algol-68、Smalltalk、Unixshell等。像Perl語(yǔ)言一樣,Python源代碼同樣遵循GNU通用公共許可證(GeneralPublicLicense,GPL)協(xié)議?,F(xiàn)在,Python由一個(gè)核心開(kāi)發(fā)團(tuán)隊(duì)維護(hù),吉多·范羅蘇姆仍然發(fā)揮著至關(guān)重要的作用,指導(dǎo)著Python的進(jìn)展。Python目前存在2.x和3.x兩個(gè)系列的版本,互相不兼容,Python2.x系列已于2020年1月1日正式停止維護(hù)和更新,本書(shū)所有代碼均基于Python3.x版本。在選擇Python版本時(shí),一定要先考慮清楚自己學(xué)習(xí)Python的目的,打算做哪方面的開(kāi)發(fā),該領(lǐng)域或方向有哪些擴(kuò)展庫(kù)可用,這些擴(kuò)展庫(kù)支持Python的哪個(gè)最高版本。2024/5/1156Python解釋器在編寫(xiě)Python代碼時(shí),我們得到的是一個(gè)包含Python代碼的以“.py”為擴(kuò)展名的文本文件。要運(yùn)行Python代碼,就需要Python解釋器去執(zhí)行“.py”文件。1.CPython當(dāng)從Python官方網(wǎng)站下載并安裝好Python3后,我們就直接獲得了一個(gè)官方版本的解釋器——CPython。這個(gè)解釋器是用C語(yǔ)言開(kāi)發(fā)的,所以稱(chēng)為CPython。在命令行中運(yùn)行Python就是啟動(dòng)CPython解釋器。CPython是使用最廣的Python解釋器。2.IPythonIPython是基于CPython的一個(gè)交互式解釋器,也就是說(shuō),IPython只是在交互方式上有所增強(qiáng),但是執(zhí)行Python代碼的功能和CPython是完全一樣的。CPython使用“>>>”作為提示符,而IPython使用“In[序號(hào)]:”作為提示符。2024/5/1157Python解釋器3.PyPyPyPy是另一個(gè)Python解釋器,它的目標(biāo)是提高執(zhí)行速度。PyPy采用及時(shí)編譯(justintime,JIT)技術(shù)對(duì)Python代碼進(jìn)行動(dòng)態(tài)編譯(注意:不是解釋),所以可以顯著提高Python代碼的執(zhí)行速度。絕大部分Python代碼都可以在PyPy下運(yùn)行,但是PyPy和CPython有一些區(qū)別,這就導(dǎo)致相同的Python代碼在兩種解釋器下執(zhí)行可能會(huì)得到不同的結(jié)果。如果代碼要在PyPy下執(zhí)行,就需要了解PyPy和CPython的不同點(diǎn)。4.JythonJython是在Java平臺(tái)上運(yùn)行的Python解釋器,可以直接把Python代碼編譯成Java字節(jié)碼執(zhí)行。2024/5/1158Python開(kāi)發(fā)環(huán)境Anaconda包含了conda、Python等180多個(gè)科學(xué)包及其依賴(lài)項(xiàng),基本上可以一站式提供常用的數(shù)據(jù)采集、處理和分析的模塊和開(kāi)發(fā)環(huán)境。相比官方的Python版本,Anaconda內(nèi)容更豐富,編輯器更優(yōu)美,操作更便利。本書(shū)默認(rèn)使用的開(kāi)發(fā)環(huán)境是Anaconda3,其中包含JupyterNotebook和Spyder兩種開(kāi)發(fā)環(huán)境,下載地址:https://www.anaconda.com/download。其他常用的開(kāi)發(fā)環(huán)境還有IDLE、PyCharm、Eclipse+PyDev、Eric、PythonWin等。2024/5/1159Python開(kāi)發(fā)環(huán)境1.JupyterNotebook本書(shū)的源碼示例和運(yùn)行結(jié)果呈現(xiàn)方式包括Python和IPythonShell及JupyterNotebook形式,其中隨書(shū)附帶的源程序多數(shù)是JupyterNotebook格式的文件。JupyterNotebook是一個(gè)交互式筆記本,支持運(yùn)行40多種編程語(yǔ)言,其本質(zhì)是一個(gè)Web應(yīng)用程序,便于創(chuàng)建和共享程序文檔,支持實(shí)時(shí)代碼、數(shù)學(xué)方程、可視化和Markdown(一種輕量級(jí)標(biāo)記語(yǔ)言)語(yǔ)法。其用途包括數(shù)據(jù)清理和轉(zhuǎn)換、數(shù)值模擬、統(tǒng)計(jì)建模、機(jī)器學(xué)習(xí)等。啟動(dòng)JupyterNotebook后會(huì)打開(kāi)一個(gè)網(wǎng)頁(yè),在該網(wǎng)頁(yè)右上角單擊“New”菜單,然后選擇“Python3”打開(kāi)一個(gè)新的窗口,在該窗口即可編寫(xiě)和運(yùn)行Python代碼,圖中為JupyterNotebook的開(kāi)發(fā)環(huán)境界面示例。其中,代碼編輯環(huán)境中的每個(gè)方框?yàn)橐粋€(gè)Cell(即單元,通過(guò)“Cell”菜單中的“CellType”選項(xiàng)可以更改單元為可執(zhí)行的Code類(lèi)型、Markdown類(lèi)型等),前面有“In[序號(hào)]”形式,單擊“運(yùn)行”按鈕即可在當(dāng)前Cell下看到運(yùn)行結(jié)果。另外,“File”菜單中還有“Open”(打開(kāi)文件)、“Saveas...”(另存為)、“Rename...”(重命名)、“Downloadas”(下載為其他格式文件)等選項(xiàng)。2024/5/1160Python開(kāi)發(fā)環(huán)境在Windows平臺(tái)中,JupyterNotebook的工作文件目錄缺省安裝在C盤(pán)下,改變JupyterNotebook的工作文件目錄的正確方法如下:(1)打開(kāi)AnacondaPrompt。(2)輸入命令jupyternotebook--generate-config。(3)打開(kāi)C:/Users/你的賬戶/.jupyter/jupyter_notebook_config.py,將c.Notebook-App.notebook_dir=修改為c.NotebookApp.notebook_dir=你想要默認(rèn)打開(kāi)的文件夾。(4)在“開(kāi)始”菜單中找到JupyterNotebook快捷鍵,點(diǎn)擊鼠標(biāo)右鍵→更多→打開(kāi)文件位置,在打開(kāi)的目錄中選中該快捷方式,在鼠標(biāo)右鍵菜單中點(diǎn)擊“屬性”,將“屬性”窗口的“快捷方式”選項(xiàng)卡中的“目標(biāo)”項(xiàng)最后的“%USERPROFILE%”去掉,然后點(diǎn)擊“確定”。2024/5/1161Python開(kāi)發(fā)環(huán)境(5)現(xiàn)在點(diǎn)擊JupyterNotebook快捷方式就可以直接在用戶想要默認(rèn)打開(kāi)的文件夾中啟動(dòng)它了。JupyterNotebook還可以單獨(dú)安裝和使用。可以在Jupyter官網(wǎng)(/)中直接使用,也可以在自己電腦上安裝Jupyter,安裝命令為“pipinstalljupyter”,安裝完成后使用“jupyternotebook”命令即可啟動(dòng)JupyterNotebook。JupyterNotebook中的快捷鍵包括:●Ctrl+Enter:執(zhí)行“運(yùn)行”?!馭hift+Enter:執(zhí)行“運(yùn)行”并換行?!馎lt+Enter:執(zhí)行“運(yùn)行”,且不管后面有沒(méi)有新格,都會(huì)插入新格?!馣、J或上下鍵可以實(shí)現(xiàn)上下移動(dòng),選中格子后按兩下D鍵可以刪除格子,就像VI編輯器一樣。2024/5/1162Python開(kāi)發(fā)環(huán)境2.SpyderSpyder是Anaconda中的一個(gè)Python編程小工具,用Python編寫(xiě),免費(fèi)且開(kāi)源,特點(diǎn)是將綜合開(kāi)發(fā)工具的高級(jí)編輯、分析、調(diào)試和剖析功能與科學(xué)軟件包的數(shù)據(jù)探索、交互式執(zhí)行、深度檢查和可視化功能獨(dú)特地結(jié)合起來(lái)。在Windows平臺(tái)中,點(diǎn)擊“開(kāi)始”菜單中的“AnacondaNavigator”即可展示Anaconda中集成的第三方工具,如JupyterLab、Orange3、Spyder等,選中其中的Spyder并點(diǎn)擊“Launch”按鈕即可打開(kāi)Spyder編程工具,如圖2-2所示。當(dāng)然,也可以在“開(kāi)始”菜單中直接點(diǎn)擊Spyder將其打開(kāi)。2024/5/1163Python開(kāi)發(fā)環(huán)境打開(kāi)Spyder后,其開(kāi)發(fā)環(huán)境界面如圖所示。右下角以交互模式輸入命令并顯示輸出結(jié)果,左邊是程序編輯窗口。2024/5/1164Python開(kāi)發(fā)環(huán)境IDLE是Python軟件包自帶的一個(gè)集成開(kāi)發(fā)環(huán)境,其開(kāi)發(fā)環(huán)境界面如圖所示。它提供的基本功能包括語(yǔ)法高亮、段落縮進(jìn)、基本文本編輯、Tab鍵控制、程序調(diào)試等,初學(xué)者利用它可以方便地創(chuàng)建、運(yùn)行、測(cè)試和調(diào)試Python程序。2024/5/1165Python開(kāi)發(fā)環(huán)境4.PyCharmPyCharm是由JetBrains打造的一款PythonIDE,支持macOS、Windows、Linux系統(tǒng),功能強(qiáng)大,有社區(qū)版、教育版和商業(yè)版三種版本。PyCharm下載地址:/pycharm/download/。PyCharm的功能包括代碼調(diào)試、語(yǔ)法高亮、項(xiàng)目管理、代碼跳轉(zhuǎn)、智能提示、自動(dòng)完成、單元測(cè)試、版本控制等,其開(kāi)發(fā)環(huán)境界面如圖所示。2024/5/1166Python擴(kuò)展庫(kù)的安裝方法進(jìn)行Python編程時(shí),經(jīng)常會(huì)用到第三方擴(kuò)展庫(kù),這些擴(kuò)展庫(kù)在安裝后方可使用。在Anaconda環(huán)境下,其安裝方法有多種,如:●pip安裝:點(diǎn)擊Windows“開(kāi)始”菜單中的“AnacondaPrompt”進(jìn)入命令行終端環(huán)境操作。pip安裝分為在線安裝和離線安裝兩種方式,缺省常用的是在線安裝方式,離線安裝則是在下載擴(kuò)展名為“whl”的第三方庫(kù)文件后進(jìn)行安裝。pip安裝的相關(guān)命令如表所示。2024/5/1167pip命令(conda對(duì)應(yīng)命令的形式類(lèi)似)說(shuō)明pipdownloadSomePackage[==version]下載擴(kuò)展庫(kù)的指定版本,不安裝pipfreeze[>requirements.txt]以requirements的格式列出已安裝模塊pipsearchSomePackage搜索指定包pipshowSomePackage顯示指定包piplist列出當(dāng)前已安裝的所有模塊及版本pipinstallSomePackage[==version]在線安裝SomePackage模塊的指定版本pipinstallSomePackage.whl通過(guò)whl文件離線安裝擴(kuò)展庫(kù)pipinstallpackage1package2…依次(在線)安裝package1、package2等擴(kuò)展模塊pipinstall-rrequirements.txt安裝requirements.txt文件中指定的擴(kuò)展庫(kù)pipinstall--upgradeSomePackage升級(jí)SomePackage模塊pipuninstallSomePackage[==version]卸載SomePackage模塊的指定版本Python擴(kuò)展庫(kù)的安裝方法●exe安裝:部分第三方庫(kù)提供了安裝程序,可直接安裝擴(kuò)展庫(kù)?!馽onda在線安裝:安裝命令的形式與pip類(lèi)似,即condainstall…。如果設(shè)備上安裝了多個(gè)Python開(kāi)發(fā)環(huán)境,那么在一個(gè)環(huán)境下安裝的擴(kuò)展庫(kù)無(wú)法在另一個(gè)環(huán)境下使用,需要分別安裝。注意,在線安裝默認(rèn)使用國(guó)外網(wǎng)站,但安裝進(jìn)程會(huì)很慢,因此可以考慮使用國(guó)內(nèi)鏡像網(wǎng)站,如:●清華大學(xué):/simple●阿里云:/pypi/simple使用鏡像源的Python安裝命令形式如下:pipinstall庫(kù)名-i鏡像網(wǎng)址另外,也可通過(guò)設(shè)置鏡像源方式避免每次執(zhí)行安裝命令都輸入鏡像地址。首先需要升級(jí)pip到最新的版本(10.0.0版本以上),然后進(jìn)行配置。以設(shè)置清華大學(xué)鏡像源為例,具體命令如下:python-mpipinstall--upgradepippipconfigsetglobal.index-url/simple2024/5/1168Python基本語(yǔ)法與命令2024/5/1169Python編程規(guī)范良好的編程規(guī)范和風(fēng)格有助于機(jī)器和人類(lèi)閱讀,Python非常重視代碼的可讀性,對(duì)代碼布局和排版有嚴(yán)格的要求。下面介紹部分Python社區(qū)對(duì)代碼編寫(xiě)的一些約定俗成的要求、規(guī)范和常用的代碼優(yōu)化方法,建議遵循并養(yǎng)成良好的編程習(xí)慣。1.縮進(jìn)與C/C和Java等語(yǔ)言有代碼塊開(kāi)始和結(jié)束的標(biāo)點(diǎn)符號(hào)不同,Python程序依靠代碼塊的縮進(jìn)來(lái)體現(xiàn)代碼之間的邏輯關(guān)系,縮進(jìn)結(jié)束就表示一個(gè)代碼塊結(jié)束。而類(lèi)定義、函數(shù)定義、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、with塊行尾的冒號(hào)則表示縮進(jìn)的開(kāi)始。一般情況下以4個(gè)空格為基本縮進(jìn)單位,也可以是2個(gè)或多個(gè)空格,但同一個(gè)級(jí)別的代碼塊的縮進(jìn)量必須相同,并且建議同一個(gè)程序文件內(nèi)代碼縮進(jìn)量保持統(tǒng)一,如下所示。2024/5/1170Python編程規(guī)范2.模塊導(dǎo)入雖然import語(yǔ)法支持一個(gè)語(yǔ)句可以導(dǎo)入多個(gè)模塊,但每個(gè)import語(yǔ)句最好只導(dǎo)入一個(gè)模塊,且最好按標(biāo)準(zhǔn)庫(kù)、擴(kuò)展庫(kù)、自定義庫(kù)的順序依次導(dǎo)入。3.代碼間隔建議在每個(gè)類(lèi)、函數(shù)定義和一段完整的功能代碼之后增加一個(gè)空行,在運(yùn)算符兩側(cè)各增加一個(gè)空格,逗號(hào)后面增加一個(gè)空格。4.長(zhǎng)語(yǔ)句拆分或換行如果語(yǔ)句過(guò)長(zhǎng),可以考慮拆分成多個(gè)短一些的語(yǔ)句,以保證代碼具有較好的可讀性。如果語(yǔ)句確實(shí)太長(zhǎng)而超過(guò)屏幕寬度,最好使用續(xù)行符(linecontinuationcharacter)“\”,或者使用圓括號(hào)將多行代碼括起來(lái)表示是一條語(yǔ)句,如下所示。2024/5/1171Python編程規(guī)范5.復(fù)雜表達(dá)式雖然Python運(yùn)算符有明確的優(yōu)先級(jí),但對(duì)于復(fù)雜的表達(dá)式,建議在適當(dāng)?shù)奈恢檬褂美ㄌ?hào),使得各種運(yùn)算的隸屬關(guān)系和順序更加明確、清晰。6.注釋(1)以符號(hào)“#”開(kāi)始,表示本行“#”之后的內(nèi)容為注釋。(2)包含在一對(duì)三引號(hào)"……"或"""……"""之間且不屬于任何語(yǔ)句的內(nèi)容將被解釋器認(rèn)為是注釋。7.標(biāo)識(shí)符標(biāo)識(shí)符是開(kāi)發(fā)人員在程序中自定義的一些符號(hào)和名稱(chēng),如變量名、函數(shù)名等。標(biāo)識(shí)符由字母、下劃線和數(shù)字組成,且不能以數(shù)字開(kāi)頭。Python中的標(biāo)識(shí)符區(qū)分大小寫(xiě),即對(duì)大小寫(xiě)敏感。2024/5/1172Python編程規(guī)范標(biāo)識(shí)符的一般命名規(guī)則如下:(1)見(jiàn)名知意。選取一個(gè)有意義的名字,盡量做到見(jiàn)其名知其意,以提高代碼的可讀性。比如:名字定義為name,學(xué)生定義為student。(2)駝峰命名法。顧名思義,標(biāo)識(shí)符名稱(chēng)像駱駝的駝峰一樣有高有低,名稱(chēng)中有大寫(xiě)和小寫(xiě)區(qū)隔。小駝峰式命名法(lowercamelcase)是第一個(gè)單詞的首字母小寫(xiě),第二個(gè)單詞的首字母大寫(xiě),如myName、aDog;大駝峰式命名法(uppercamelcase)是每一個(gè)單詞的首字母都采用大寫(xiě)形式,如FirstName、LastName。除此之外,在程序員中還有一種命名法比較流行,即用下劃線“_”來(lái)連接所有單詞,如send_buf。8.關(guān)鍵字關(guān)鍵字是Python中一些具有特殊功能的標(biāo)識(shí)符,為了避免混淆,不允許開(kāi)發(fā)者定義和Python關(guān)鍵字名稱(chēng)相同的標(biāo)識(shí)符。查看Python保留關(guān)鍵字的方法如下:2024/5/1173importkeywordaskw#導(dǎo)入關(guān)鍵字模塊kw.kwlistPython編程規(guī)范9.__name__屬性通過(guò)Python程序的__name__屬性可以識(shí)別程序的使用方式:●如果程序作為模塊被導(dǎo)入,則其__name__屬性值會(huì)被自動(dòng)設(shè)置為模塊名?!袢绻绦蜃鳛槌绦蛑苯舆\(yùn)行,則其__name__屬性值會(huì)被自動(dòng)設(shè)置為字符串__main__。2024/5/1174標(biāo)準(zhǔn)庫(kù)與擴(kuò)展庫(kù)對(duì)象的導(dǎo)入與使用Python的默認(rèn)安裝僅包含基本或核心模塊,啟動(dòng)時(shí)也僅加載了基本模塊,需要時(shí)再顯式地導(dǎo)入和加載標(biāo)準(zhǔn)庫(kù)或第三方擴(kuò)展庫(kù),這樣可以減小程序運(yùn)行的壓力,并且具有很強(qiáng)的可擴(kuò)展性。從“木桶原理”的角度來(lái)看,這樣的設(shè)計(jì)與安全配置時(shí)遵循“最小權(quán)限”原則的思想是一致的,有助于提高系統(tǒng)的安全性。程序庫(kù)的導(dǎo)入方式有以下幾種:(1)import模塊名[as別名]:導(dǎo)入整個(gè)模塊,方括號(hào)內(nèi)為可選內(nèi)容。示例程序如下:2024/5/1175標(biāo)準(zhǔn)庫(kù)與擴(kuò)展庫(kù)對(duì)象的導(dǎo)入與使用(2)from模塊名import對(duì)象名[as別名]:導(dǎo)入模塊指定對(duì)象。示例程序如下:2024/5/1176標(biāo)準(zhǔn)庫(kù)與擴(kuò)展庫(kù)對(duì)象的導(dǎo)入與使用(3)from模塊名import*,導(dǎo)入模塊中所有函數(shù)。示例程序如下:2024/5/1177Python魔法命令Python提供了許多魔法命令,使得在IPython環(huán)境中的操作更加得心應(yīng)手。魔法命令均以“%”或者“%%”開(kāi)頭:●以“%”開(kāi)頭的稱(chēng)為行命令:行命令只對(duì)命令所在的行有效?!褚浴?%”開(kāi)頭的稱(chēng)為單元命令,單元命令必須出現(xiàn)在單元的第一行,對(duì)整個(gè)單元的代碼都有效。例如,“%matplotlibinline”命令可以將matplotlib的圖表直接嵌入JupyterNotebook。執(zhí)行“%magic”可以查看關(guān)于各個(gè)魔法命令的說(shuō)明。常用魔法命令的示例如下:●%runfile[args]:運(yùn)行腳本?!?debug和%pdb:快速debug?!?time和%timeit:運(yùn)行時(shí)間分析?!?pwd和%ls:顯示當(dāng)前目錄和目錄內(nèi)容?!?cddirname:工作目錄切換。2024/5/1178PythonShell命令PythonShell是最簡(jiǎn)單的以命令行方式運(yùn)行和調(diào)試Python程序的方法。例如:●命令行輸入“Python”,即進(jìn)入Shell模式。●命令行輸入“iPython”,即進(jìn)入交互式Shell模式?!衩钚休斎搿癙ython(或iPython)文件名.py”,即執(zhí)行對(duì)應(yīng)的Python程序?!衩钚休斎搿癷Python文件名.ipynb”,即執(zhí)行JupyterNotebook環(huán)境編寫(xiě)格式的Python程序。進(jìn)入PythonShell模式窗口,在命令行提示符后面即可輸入Python代碼。如果要退出當(dāng)前模式,輸入“exit()”后回車(chē)即可。在PythonShell模式窗口,還可使用“!”符號(hào)調(diào)用操作系統(tǒng)中的Shell命令,如在Windows平臺(tái)中輸入“!dir”,即可調(diào)用dir命令來(lái)顯示當(dāng)前目錄下的文件和文件夾列表。另外,在PythonShell及其他開(kāi)發(fā)環(huán)境中,一般可以使用自動(dòng)補(bǔ)全(autocompletion)功能,即在對(duì)象后面輸入對(duì)象訪問(wèn)符“.”后,按Tab鍵自動(dòng)顯示該對(duì)象的相關(guān)屬性和方法,以方便代碼的編寫(xiě);還可使用dir函數(shù)查看指定對(duì)象的屬性和函數(shù)列表,在具體函數(shù)名后添加問(wèn)號(hào)“?”即可查看該函數(shù)的詳細(xì)說(shuō)明。2024/5/1179基本輸出和輸入1.基本輸出Python內(nèi)置函數(shù)print用于輸出信息到標(biāo)準(zhǔn)控制臺(tái)或指定文件,語(yǔ)法格式為:print(value1,value2,…,sep=,end=\n,file=sys.stdout,flush=False)●sep參數(shù)之前為需要輸出的內(nèi)容(可以有多個(gè));●sep參數(shù)用于指定數(shù)據(jù)之間的分隔符,默認(rèn)為空格;●end參數(shù)用于指定輸出完數(shù)據(jù)之后再輸出什么字符。例如:print(helloworld\n)#\n為換行符,即換行輸出2.基本輸入在Python中,獲取鍵盤(pán)輸入數(shù)據(jù)的方法是采用input函數(shù),它接受表達(dá)式輸入,并把表達(dá)式的結(jié)果賦值給等號(hào)左邊的變量。不論用戶輸入什么內(nèi)容,input一律返回字符串,必要時(shí)可以使用內(nèi)置函數(shù)int、float或eval對(duì)用戶輸入的內(nèi)容進(jìn)行類(lèi)型轉(zhuǎn)換。示例程序如下:2024/5/1180選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)絕大部分合法的Python表達(dá)式都可以作為條件表達(dá)式。在選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中,條件表達(dá)式的值只要不是False、0(或0.0、0j等)、空值None、空列表、空元組、空集合、空字典、空字符串、空range對(duì)象或其他空迭代對(duì)象,Python解釋器均認(rèn)為其與True等價(jià)。在Python語(yǔ)法中,條件表達(dá)式中不允許使用賦值運(yùn)算符“=”,以避免誤將關(guān)系運(yùn)算符“==”寫(xiě)作賦值運(yùn)算符“=”帶來(lái)的麻煩。在條件表達(dá)式中使用賦值運(yùn)算符“=”將提示語(yǔ)法錯(cuò)誤。部分示例程序如下:2024/5/1181選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)(二)選擇結(jié)構(gòu)常見(jiàn)的選擇結(jié)構(gòu)有單分支選擇結(jié)構(gòu)、雙分支選擇結(jié)構(gòu)、多分支選擇結(jié)構(gòu)以及嵌套的分支結(jié)構(gòu),也可以構(gòu)造跳轉(zhuǎn)表來(lái)實(shí)現(xiàn)類(lèi)似邏輯。循環(huán)結(jié)構(gòu)和異常處理結(jié)構(gòu)中帶有“else”子句時(shí),也可以看作特殊形式的選擇結(jié)構(gòu)。(1)單分支選擇結(jié)構(gòu)。if表達(dá)式:語(yǔ)句塊(2)雙分支選擇結(jié)構(gòu)。if表達(dá)式:語(yǔ)句塊1else:語(yǔ)句塊2雙分支選擇結(jié)構(gòu)示例程序如下:2024/5/1182選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)Python提供了一個(gè)三元運(yùn)算符,并且在三元運(yùn)算符構(gòu)成的表達(dá)式中還可以嵌套三元運(yùn)算符,實(shí)現(xiàn)與選擇結(jié)構(gòu)相似的功能。語(yǔ)法為:value1ifconditionelsevalue2當(dāng)條件表達(dá)式condition的值與True等價(jià)時(shí),表達(dá)式的值為value1,否則表達(dá)式的值為value2。例如,“b=6if5>13else9”,由于條件表達(dá)式“5>13”不為T(mén)rue,所以結(jié)果是b=9。(3)多分支選擇結(jié)構(gòu)。if表達(dá)式1:語(yǔ)句塊1elif表達(dá)式2:語(yǔ)句塊2elif表達(dá)式3:語(yǔ)句塊3……else:語(yǔ)句塊n#注:關(guān)鍵字elif是elseif的縮寫(xiě)。2024/5/1183選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)示例程序如下:2024/5/1184#示例:使用多分支選擇結(jié)構(gòu)將成績(jī)從百分制變換為等級(jí)制deffunc(score):ifscore>100orscore<0:return“wrongscore.mustbetween0and100.”elifscore>=90:return“A”elifscore>=80:return“B”elifscore>=70:return“C”elifscore>=60:return“D”else:return“F”另外,選擇結(jié)構(gòu)可以嵌套,但縮進(jìn)必須正確并且一致。選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)(三)循環(huán)結(jié)構(gòu)Python主要有for循環(huán)和while循環(huán)兩種循環(huán)結(jié)構(gòu),多個(gè)循環(huán)可以嵌套使用,并且經(jīng)常使用結(jié)構(gòu)嵌套來(lái)實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)邏輯。while循環(huán)一般用于循環(huán)次數(shù)難以提前確定的情況,當(dāng)然也可以用于循環(huán)次數(shù)確定的情況;for循環(huán)一般用于循環(huán)次數(shù)可以提前確定的情況,尤其適用于枚舉和遍歷序列或迭代對(duì)象中元素的場(chǎng)合。對(duì)于帶有else子句的循環(huán)結(jié)構(gòu),如果循環(huán)是因?yàn)闂l件表達(dá)式不成立或序列遍歷結(jié)束而自然結(jié)束,則執(zhí)行else結(jié)構(gòu)中的語(yǔ)句;如果循環(huán)是因?yàn)閳?zhí)行了break語(yǔ)句而導(dǎo)致提前結(jié)束,則不會(huì)執(zhí)行else結(jié)構(gòu)中的語(yǔ)句。(1)基本語(yǔ)法。兩種循環(huán)結(jié)構(gòu)的完整語(yǔ)法形式分別為:2024/5/1185while循環(huán)基本語(yǔ)法for循環(huán)基本語(yǔ)法while條件表達(dá)式:循環(huán)體[else:else子句代碼塊]for取值in序列或迭代對(duì)象:循環(huán)體[else:else子句代碼塊]選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)示例程序如下:2024/5/1186#示例:打印九九乘法表foriinrange(1,10):forjinrange(1,i+1):print({0}*{1}={2}.format(i,j,i*j),end=)print()#打印空行選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)(2)break與continue語(yǔ)句。一旦break語(yǔ)句被執(zhí)行,將使得break語(yǔ)句所屬層次的循環(huán)提前結(jié)束。continue語(yǔ)句的作用是提前結(jié)束本次循環(huán),忽略continue之后的所有語(yǔ)句,提前進(jìn)入下一次循環(huán)。下面的示例為:輸入若干個(gè)成績(jī),求所有成績(jī)的平均分,每輸入一個(gè)成績(jī)后詢問(wèn)是否繼續(xù)輸入下一個(gè)成績(jī),回答“yes”就繼續(xù)輸入下一個(gè)成績(jī),回答“no”就停止輸入成績(jī)。2024/5/1187運(yùn)算符、表達(dá)式與內(nèi)置對(duì)象2024/5/1188Python常用內(nèi)置對(duì)象對(duì)象是Python語(yǔ)言中最基本的概念,在Python中處理的一切都是對(duì)象。Python中有許多內(nèi)置對(duì)象可供編程者使用,內(nèi)置對(duì)象可直接使用,如數(shù)字、字符串、列表、字典等。非內(nèi)置對(duì)象需要導(dǎo)入模塊才能使用,如正弦函數(shù)sin(x),隨機(jī)數(shù)產(chǎn)生函數(shù)random()等。2024/5/1189Python常用內(nèi)置對(duì)象2024/5/1190對(duì)象類(lèi)型類(lèi)型名稱(chēng)示例簡(jiǎn)要說(shuō)明數(shù)字intfloatcomplex12343.14,1.3e53+4j數(shù)字大小沒(méi)有限制,內(nèi)置支持復(fù)數(shù)及其運(yùn)算字符串str'swfu',"I'mstudent",'''Python''',r'abc',R'bcd'使用單引號(hào)、雙引號(hào)、三引號(hào)作為定界符,以字母r或R引導(dǎo)的表示原始字符串字節(jié)串bytesb'helloworld'以字母b引導(dǎo),可以使用單引號(hào)、雙引號(hào)、三引號(hào)作為定界符列表list[1,2,3]['a','b',['c',2]]所有元素放在一對(duì)方括號(hào)中,元素之間使用逗號(hào)分隔,其中的元素可以是任意類(lèi)型字典dict{1:'food',2:'taste',3:'import'}所有元素放在一對(duì)大括號(hào)中,元素之間使用逗號(hào)分隔,元素形式為“鍵:值”元組tuple(2,-5,6)(3,)不可變,所有元素放在一對(duì)圓括號(hào)中,元素之間使用逗號(hào)分隔,如果元組中只有一個(gè)元素的話,后面的逗號(hào)不能省略集合setfrozenset{'a','b','c'}所有元素放在一對(duì)大括號(hào)中,元素之間使用逗號(hào)分隔,元素不允許重復(fù);另外,set是可變的,而frozenset是不可變的Python常用內(nèi)置對(duì)象2024/5/1191對(duì)象類(lèi)型類(lèi)型名稱(chēng)示例簡(jiǎn)要說(shuō)明布爾型boolTrue,False邏輯值,關(guān)系運(yùn)算符、成員測(cè)試運(yùn)算符、同一性測(cè)試運(yùn)算符組成的表達(dá)式的值一般為T(mén)rue或False空類(lèi)型NoneTypeNone空值異常ExceptionValueErrorTypeError
Python內(nèi)置大量異常類(lèi),分別對(duì)應(yīng)不同類(lèi)型的異常文件
f=
open('data.dat','rb')open是Python內(nèi)置函數(shù),使用指定的模式打開(kāi)文件,返回文件對(duì)象其他可迭代對(duì)象
生成器對(duì)象、range對(duì)象、zip對(duì)象、enumerate對(duì)象、map對(duì)象、filter對(duì)象等等具有惰性求值的特點(diǎn),除range對(duì)象之外,其他對(duì)象中的元素只能看一次編程單元
函數(shù)(使用def定義)類(lèi)(使用class定義)模塊(類(lèi)型為module)類(lèi)和函數(shù)都屬于可調(diào)用對(duì)象,模塊用來(lái)集中存放函數(shù)、類(lèi)、常量或其他對(duì)象常量與變量在Python中,不需要事先聲明變量名及其類(lèi)型,直接賦值即可創(chuàng)建各種類(lèi)型的對(duì)象變量。這一點(diǎn)適用于Python任意類(lèi)型的對(duì)象。例如語(yǔ)句>>>x=3創(chuàng)建了整型變量x,并賦值為3,再例如語(yǔ)句>>>x='Helloworld.'創(chuàng)建了字符串變量x,并賦值為'Helloworld.'。92憑空出現(xiàn)一個(gè)整型變量x新的字符串變量,再也不是原來(lái)的x了常量與變量賦值語(yǔ)句的執(zhí)行過(guò)程是:首先把等號(hào)右側(cè)表達(dá)式的值計(jì)算出來(lái),然后在內(nèi)存中尋找一個(gè)位置把值存放進(jìn)去,最后創(chuàng)建變量并指向這個(gè)內(nèi)存地址。>>>x=3Python中的變量并不直接存儲(chǔ)值,而是存儲(chǔ)了值的內(nèi)存地址或者引用,這也是變量類(lèi)型隨時(shí)可以改變的原因。93常量與變量Py
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 車(chē)輛抵押合同借款范本年
- 商品采購(gòu)合同范本年
- 合同協(xié)議補(bǔ)充模板
- 鋼鐵項(xiàng)目擔(dān)保合同
- 攝影師勞動(dòng)合同范本
- 商品混凝土合同書(shū)范本
- 草坪種植合同協(xié)議書(shū)模板范本
- 租賃合同申請(qǐng)書(shū)年
- 空置房屋轉(zhuǎn)讓合同模板
- 部編版道德與法治九年級(jí)上冊(cè)《我們的夢(mèng)想》聽(tīng)課評(píng)課記錄1
- DL-T+5196-2016火力發(fā)電廠石灰石-石膏濕法煙氣脫硫系統(tǒng)設(shè)計(jì)規(guī)程
- 2024-2030年中國(guó)產(chǎn)教融合行業(yè)市場(chǎng)運(yùn)營(yíng)態(tài)勢(shì)及發(fā)展前景研判報(bào)告
- 2024年微生物檢測(cè)試劑行業(yè)商業(yè)計(jì)劃書(shū)
- 高中英語(yǔ)選擇性必修一單詞表
- 物業(yè)公司介紹
- (正式版)SHT 3551-2024 石油化工儀表工程施工及驗(yàn)收規(guī)范
- JTGT H21-2011 公路橋梁技術(shù)狀況評(píng)定標(biāo)準(zhǔn)
- 【永輝超市公司員工招聘問(wèn)題及優(yōu)化(12000字論文)】
- 中國(guó)直銷(xiāo)發(fā)展四個(gè)階段解析
- 2024屆浙江省寧波市鎮(zhèn)海區(qū)鎮(zhèn)海中學(xué)高一物理第一學(xué)期期末質(zhì)量檢測(cè)試題含解析
- 部編版語(yǔ)文四年級(jí)下冊(cè) 教材解讀
評(píng)論
0/150
提交評(píng)論