国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Python數(shù)據(jù)結(jié)構(gòu)在社保大數(shù)據(jù)領(lǐng)域運(yùn)用分析

2023-05-29 09:24肖轉(zhuǎn)紅
電子技術(shù)與軟件工程 2023年7期
關(guān)鍵詞:批處理數(shù)據(jù)表腳本

肖轉(zhuǎn)紅

(山西運(yùn)城師范高等??茖W(xué)校 山西省運(yùn)城市 044000)

Python 語言在計算機(jī)領(lǐng)域有著較為廣泛的應(yīng)用,能夠基于既定的數(shù)據(jù)結(jié)構(gòu)方式來提升對各類數(shù)據(jù)進(jìn)行處理的效率,也能夠保證數(shù)據(jù)分析結(jié)果的準(zhǔn)確性。社保是社會民生工程的重要組成部分,是基本的社會保障之一,將Python 數(shù)據(jù)結(jié)構(gòu)與大數(shù)據(jù)技術(shù)的應(yīng)用結(jié)合起來,對提升社保數(shù)據(jù)的處理效率,改善社會公共服務(wù)的水平具有積極的意義,能夠為更多政務(wù)服務(wù)工作的開展提供參考。

1 Python的數(shù)據(jù)結(jié)構(gòu)

1.1 遍歷函數(shù)的應(yīng)用

Python 語言從本質(zhì)上來說是一種工具,能夠?qū)诰W(wǎng)絡(luò)環(huán)境的空間數(shù)據(jù)進(jìn)行批量處理。在Python 語言中應(yīng)用遍歷函數(shù),能夠基于Pythonfor 的循環(huán)語句、內(nèi)置函數(shù)enumerate,遍歷匯集了空間數(shù)據(jù)的數(shù)據(jù)表文件中的目錄、序列項目,將遍歷后得到的結(jié)果應(yīng)用數(shù)組、鏈表等數(shù)據(jù)結(jié)構(gòu)的方式存儲起來[1]。

1.2 數(shù)據(jù)結(jié)構(gòu)

基于遍歷函數(shù)的Python 數(shù)據(jù)結(jié)構(gòu),只需要依據(jù)OSwalk()、glob()等的遍歷函數(shù),就可以直接獲取到網(wǎng)絡(luò)空間文件夾內(nèi)的所有目錄和數(shù)據(jù)表文件,進(jìn)而獲取到具體的數(shù)據(jù)結(jié)構(gòu)[2]。

2 在社保大數(shù)據(jù)領(lǐng)域應(yīng)用Python數(shù)據(jù)結(jié)構(gòu)的情況分析

將Python 數(shù)據(jù)結(jié)構(gòu)應(yīng)用到社保大數(shù)據(jù)領(lǐng)域,能夠在應(yīng)用大數(shù)據(jù)技術(shù)的基礎(chǔ)上,借助Python 數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)對于更多復(fù)雜數(shù)據(jù)內(nèi)容的批量處理和任務(wù)執(zhí)行,對于提升大數(shù)據(jù)技術(shù)的應(yīng)用價值,提升社保服務(wù)質(zhì)量水平具有積極的作用。基于此,在對社保大數(shù)據(jù)領(lǐng)域應(yīng)用Python 數(shù)據(jù)結(jié)構(gòu)的情況進(jìn)行分析時,主要可以從以下幾個方面來入手:

2.1 數(shù)據(jù)表文件批量處理方案

2.1.1 擴(kuò)展工具的應(yīng)用

對數(shù)量較多的數(shù)據(jù)表文件進(jìn)行批量處理,需要應(yīng)用擴(kuò)展工具來實現(xiàn)。當(dāng)前能夠應(yīng)用于Python 語言的擴(kuò)展工具,以ARC-TOOLBOX 擴(kuò)展工具、矢量裁剪擴(kuò)展工具、Arcpy 站點包擴(kuò)展工具三種為主。

2.1.2 硬件環(huán)境搭建與空間批處理對象的創(chuàng)建

在應(yīng)用Python 數(shù)據(jù)結(jié)構(gòu)來對數(shù)據(jù)表文件進(jìn)行批量處理時,首先需要基于數(shù)據(jù)表文件批處理的實際需求,確定應(yīng)用的數(shù)據(jù)庫服務(wù)器類型。本文在對數(shù)據(jù)內(nèi)容進(jìn)行處理時,主要選擇應(yīng)用IBMX3850 系列處理器、IBMDS3512 磁盤陣列,并在單臺的磁盤陣列中配置8塊儲存空間為2T 的SAS 硬盤[5]。在測試軟件的選擇方面,主要應(yīng)用“Windows+ArcMap”軟件包的方式,在設(shè)置ARCTOOLBOX、Geoprpcessor 對象工具以及相關(guān)組件的前提下,確保對數(shù)據(jù)表文件進(jìn)行處理時的環(huán)境和組件都能夠體現(xiàn)出良好的兼容性,也能夠確保數(shù)據(jù)處理的穩(wěn)定性和準(zhǔn)確性。在這一過程中,應(yīng)注重列表這一數(shù)據(jù)結(jié)構(gòu)的重要組成部分,在Python 的數(shù)據(jù)結(jié)構(gòu)中,列表通常作為函數(shù)的返回類型使用,能夠?qū)崿F(xiàn)對于列表中各項元素的添加、刪除以及查找等操作,列表中的具體元素值也可以被修改。列表在應(yīng)用中需要基于一定的方法來實現(xiàn)排序和逆序,應(yīng)用不同的算法,能夠在提出數(shù)據(jù)查找需求之后,基于不同的算法程序和邏輯來實現(xiàn)相應(yīng)代碼的運(yùn)行[6]。這一過程是影響不同數(shù)據(jù)結(jié)構(gòu)運(yùn)行效率的主要因素,因而對于Python 數(shù)據(jù)結(jié)構(gòu)的設(shè)計,需要重點考慮列表的不同形式。

2.1.3 Python 數(shù)據(jù)批處理的腳本程序開發(fā)

在確定空間批處理對象之后,需要考慮遍歷函數(shù)的應(yīng)用原理,結(jié)合遍歷操作的基本步驟和流程,在IDLE和pycharm 編輯器中,設(shè)置ARCTOOLBOX 插件的Geoprocessor 對象工具以及Define Projection 定義投影工具,在工具窗口中點擊下一步的操作指令之后,可以實現(xiàn)對于Python 腳本程序工具語法以及執(zhí)行代碼的定義,從而選擇更符合實際數(shù)據(jù)處理需求的Python 腳本程序以及工具類型。在這一過程中,還需要對實際運(yùn)行的代碼進(jìn)行拷貝處理,結(jié)合數(shù)據(jù)批處理的具體情況,對相應(yīng)的工具腳本參數(shù)情況進(jìn)行修改,讓工具腳本參數(shù)能夠適應(yīng)ArcGIS 的地理空間中對于數(shù)據(jù)批處理提出的實際操作要求。

2.1.4 腳本程序的數(shù)據(jù)批處理執(zhí)行

在完成腳本程序的開發(fā)之后,還需要基于既定的腳本程序來對具體的數(shù)據(jù)進(jìn)行批處理的執(zhí)行操作。在這一過程中,需要考慮IDLE、pycharm 的集成開發(fā)環(huán)境這一前提,在充分發(fā)揮Python 匯編語言作用的情況下,滿足對于多樣化ARCTOOLBOX 工具或插件以及基于ArcGIS 空間數(shù)據(jù)處理的腳本程序的開發(fā)。以此開發(fā)流程得到的Python 腳本程序,能夠滿足描述GIS 數(shù)據(jù)、更改目錄、命名分解文件、羅列列表等方面的功能??紤]到Python 腳本程序在實際開發(fā)中的應(yīng)用,對基于腳本程序的數(shù)據(jù)批處理執(zhí)行,還應(yīng)具備實現(xiàn)批量投影裁切與輸出的功能。在這一情況下,實際進(jìn)行Python 腳本程序數(shù)據(jù)批處理執(zhí)行的流程,主要能夠應(yīng)用到以下代碼:

import os

作為當(dāng)前工作目錄path=os.getcwd()#path

獲取當(dāng)前工作目錄路徑current_path=os.getcwd()#

print (current_ path)

'/ZC/Download/data'

更改當(dāng)前數(shù)據(jù)表文件目錄、分解為多個目錄的文件命名的執(zhí)行代碼為:

fpath,fname = os.path.split("要分解的路徑")

a,b=os.path.split('ZC/Download/data/zc.txt')以最后一個目錄為界分割

print a, print b

'ZC/Download/data'

'zc.txt'

在此基礎(chǔ)上,當(dāng)腳本程序運(yùn)行的執(zhí)行命令為獲取目錄文件列表時,實際的執(zhí)行代碼運(yùn)行過程應(yīng)為:

設(shè)置路徑:path=os.getcwd()#

獲取指定路徑文件:dirs=os.listdir(path) #

循環(huán)讀取路徑下的文件并篩選輸出:for i in dirs: #

if os.path.splitext(i)[1]==".py":# 篩 選Coverage、Excel、csv 等格式的文件

print i(i 表示后綴名為py 的文件)

而對于需要獲取RrcGIS 影像數(shù)據(jù)的情況,在保證系統(tǒng)數(shù)據(jù)滿足批量投影裁切的要求之后,實際的執(zhí)行代碼運(yùn)行過程為:

在以上所有的代碼運(yùn)行完成后,就可以基于Python語言來實現(xiàn)對于不同矢量數(shù)據(jù)表的分類導(dǎo)出,并結(jié)合系統(tǒng)以及腳本的程序自動將獲得的相應(yīng)數(shù)據(jù)表儲存到制定的文件夾當(dāng)中,從而實現(xiàn)對于批量數(shù)據(jù)表的有效處理。

2.2 SET數(shù)據(jù)結(jié)構(gòu)

在明確應(yīng)用Python 語言進(jìn)行數(shù)據(jù)表文件批量處理的運(yùn)行原理前提下,考慮社保大數(shù)據(jù)領(lǐng)域?qū)?shù)據(jù)處理提出的要求,應(yīng)在保證實現(xiàn)對數(shù)據(jù)表文件進(jìn)行批量處理的前提下,進(jìn)一步通過優(yōu)化集合列表的方式,在Python中建立一個集合列表,讓實際數(shù)據(jù)處理中不同的數(shù)據(jù)結(jié)構(gòu)都能夠更準(zhǔn)確地指向需要進(jìn)行訪問的地址。從Python數(shù)據(jù)結(jié)構(gòu)的角度進(jìn)行考慮,需要明確基于程序語言的數(shù)據(jù)結(jié)構(gòu)本身是一種能夠從內(nèi)存中獲取數(shù)據(jù)地址進(jìn)而得到數(shù)據(jù)的方式,應(yīng)用各種類型的編程語言和數(shù)據(jù)結(jié)構(gòu),最主要的目的就是能夠借助計算機(jī)實現(xiàn)對于內(nèi)存中數(shù)據(jù)的讀取。現(xiàn)階段,Python 語言能夠應(yīng)用于系統(tǒng)編程、GUI編程、互聯(lián)網(wǎng)腳本以及數(shù)據(jù)編程等多個不同的行業(yè)領(lǐng)域。

基于此,在應(yīng)用Python 結(jié)構(gòu)對數(shù)據(jù)進(jìn)行處理時,首先需要構(gòu)建一個LIST 的數(shù)據(jù)結(jié)構(gòu),基于單鏈序列、雙鏈序列以及環(huán)形序列來實現(xiàn)對于其中各類數(shù)據(jù)信息的精確索引。其中,單鏈序列主要是指以實現(xiàn)單向索引為主要目標(biāo),每個節(jié)點只包含下一節(jié)點位置;雙鏈序列能夠?qū)崿F(xiàn)前后雙向的查找,每個節(jié)點都包含前一節(jié)點與后一節(jié)點的地址;環(huán)形序列則通過序列節(jié)點指向的方式,結(jié)合單向序列的原理來滿足對數(shù)據(jù)進(jìn)行精確索引的需求。應(yīng)用這一列表的方式,能夠?qū)崿F(xiàn)對空間任一個數(shù)據(jù)位置的插入、切片和刪除,也不會受到重復(fù)數(shù)據(jù)值的影響。

2.3 社保相關(guān)數(shù)據(jù)帶入結(jié)構(gòu)的實例分析

在明確基于Python 語言的數(shù)據(jù)結(jié)構(gòu)運(yùn)行原理和列表構(gòu)建情況之后,需要結(jié)合社保大數(shù)據(jù)領(lǐng)域?qū)ython數(shù)據(jù)結(jié)構(gòu)應(yīng)用提出的具體需求,探討以LIST 列表和SET 列表方式對數(shù)據(jù)進(jìn)行處理的實際效果。Python 本身是一種高效的編程語言,能夠順應(yīng)當(dāng)前軟件開發(fā)的主要趨勢,滿足基于計算機(jī)系統(tǒng)的大數(shù)據(jù)技術(shù)應(yīng)用創(chuàng)新以及優(yōu)化的要求。結(jié)合前文對于LIST 和SET 兩種列表的數(shù)據(jù)結(jié)構(gòu)方式分析,將這兩種數(shù)據(jù)結(jié)構(gòu)方式代入到社保大數(shù)據(jù)領(lǐng)域,最主要的目的就是通過數(shù)據(jù)結(jié)構(gòu)方式的對比,基于社保大數(shù)據(jù)領(lǐng)域的具體應(yīng)用要求,為提升社保服務(wù)選擇更合適的Python 數(shù)據(jù)結(jié)構(gòu)類型。

結(jié)合當(dāng)前社保服務(wù)工作開展的主要內(nèi)容和具體要求,在將與社保相關(guān)的數(shù)據(jù)帶入到Python 腳本程序和數(shù)據(jù)結(jié)構(gòu)時,需要考慮當(dāng)前社會發(fā)展中需求最為密集的社保種類,即跨統(tǒng)籌區(qū)或跨險種的數(shù)據(jù)應(yīng)用和處理情況。在這一方面,考慮到政務(wù)服務(wù)對于社保數(shù)據(jù)處理和提升社保服務(wù)質(zhì)量水平的要求,企業(yè)養(yǎng)老保險、機(jī)關(guān)養(yǎng)老保險以及城鄉(xiāng)居民養(yǎng)老保險等不同方面的數(shù)據(jù)信息,通常以Excel 的形式儲存在社保部門相對應(yīng)的不同科室當(dāng)中,且單一的表格數(shù)據(jù)信息量就較為龐大。

為驗證本文中提到的應(yīng)用Python 語言對數(shù)據(jù)表文件進(jìn)行批處理以及LIST 和SET 列表構(gòu)建方法的有效性,在實際分析中選取10000 機(jī)關(guān)養(yǎng)老待遇的人員信息以及10000 城鄉(xiāng)居民養(yǎng)老待遇的人員信息,以對比的方式,分析應(yīng)用Python 數(shù)據(jù)結(jié)構(gòu)所展現(xiàn)的對于數(shù)據(jù)分析處理的性能優(yōu)勢以及實際的運(yùn)行情況。

具體而言,在對相應(yīng)數(shù)據(jù)進(jìn)行處理的過程中,需要將10000 人的兩類數(shù)據(jù)源分別輸入到兩個LIST 列表中,基于FOR 循環(huán)代碼來實現(xiàn)對于相關(guān)數(shù)據(jù)的便利比對。整個遍歷過程涉及到的運(yùn)行代碼如下:

而在分別將10000 人的兩類數(shù)據(jù)源輸入到兩個SET列表之后,則需要基于intersection 函數(shù)的方式來對數(shù)據(jù)的交集進(jìn)行求解計算:

starttime=datetime.datetime.now()

newdata=set(dt).intersection(set(dt1))

finishtime=datetime.datetime.now()

print('SET 用時:%s'%(finishtime-starttime))

在分別對應(yīng)用兩種列表方式得到的數(shù)據(jù)交集結(jié)果進(jìn)行驗證之后,發(fā)現(xiàn)LIST 的最大運(yùn)算次數(shù)為20000 次,用時為1.12630778 秒,而應(yīng)用SET 結(jié)構(gòu)得到的最大運(yùn)算次數(shù)為一億次,用時為0.00001993 秒。結(jié)合這一數(shù)據(jù)的計算結(jié)果來看,相較于LIST,SET 列表在基于Python 語言和數(shù)據(jù)結(jié)構(gòu)的前提下,能夠呈現(xiàn)出更大的應(yīng)用優(yōu)勢。

為進(jìn)一步探討SET 列表的數(shù)據(jù)結(jié)構(gòu)方式應(yīng)用原理和性能效果,主要從隨機(jī)訪問的角度出發(fā),展示驗證基于查找算法的LIST 抽象源碼運(yùn)行情況:

def serach For Key (self, key):

temp = self.head

while temp != None:

if temp.value == key:

return True

temp = temp.next

return False

在一個未排列的數(shù)據(jù)序列中,如果序列共有10、11、12、8、9、12、14 七個整數(shù)值,在設(shè)定查找13 這一Key 值的前提下,需要從序列的開頭部分以循環(huán)比對的方式進(jìn)行查找,在查找得到的數(shù)據(jù)不匹配的情況下,需要通過temp=temp.next 的操作來進(jìn)入下一個節(jié)點,繼續(xù)進(jìn)行循環(huán)比對的操作。當(dāng)循環(huán)比對過程中查找到正確的Key 值,就會返回Ture 進(jìn)而跳出循環(huán)。由此可以發(fā)現(xiàn),在應(yīng)用LIST 列表的算法進(jìn)行數(shù)據(jù)查找和索引時,需要利用遍歷函數(shù),遍歷整個序列中的數(shù)據(jù)才能夠匹配到具體的數(shù)值??紤]到實際數(shù)據(jù)索引和分析處理的需求,通常應(yīng)用這一列表方式來滿足查找具有順序敏感性的數(shù)據(jù),并引入平均查找復(fù)雜度這一概念來保證數(shù)據(jù)查找的精確性與效率效果。

而在應(yīng)用SET 列表的情況下,基于哈希算法的SET 抽象源碼運(yùn)行情況如下:

def serach For Key(self, key):

hash Value=self.Compute Hash(key)

temp=hash Value%7

if self.Arr[temp]==key:

return True

elif False

結(jié)合前面的分析可以發(fā)現(xiàn),在應(yīng)用SET 列表進(jìn)行數(shù)據(jù)分析處理的情況下,需要借助哈希算法來省略進(jìn)行循環(huán)查找的步驟,直接通過一次尋址的方式就可以得到相應(yīng)的查找結(jié)果。在結(jié)合以上抽象源碼運(yùn)行情況之后可以發(fā)現(xiàn),以構(gòu)建SET 列表的方式,能夠在得到一個基于7 個整數(shù)值的集合之后,通過ComputeHash 函數(shù)來驗證查找對象所對應(yīng)的哈希值,在此基礎(chǔ)上通過哈希算法來對哈希值進(jìn)行計算,進(jìn)而得到相對應(yīng)的哈希表中的索引位置數(shù)據(jù)。如果得到的索引位置數(shù)據(jù)與需要尋找的Key值相同,就可以直接成功返回。在這一數(shù)據(jù)索引和處理分析的過程中,SET 本身的規(guī)模大小以及數(shù)據(jù)結(jié)構(gòu)的復(fù)雜程度不會對數(shù)據(jù)的索引和查找產(chǎn)生影響。在理想的情況下,應(yīng)用SET 列表查找數(shù)據(jù)表文件中的任何數(shù)據(jù),都只需要查找一次,就可以借助哈希算法來實現(xiàn)數(shù)據(jù)比對。

3 結(jié)論

綜上所述,將Python 的數(shù)據(jù)結(jié)構(gòu)應(yīng)用到社保大數(shù)據(jù)領(lǐng)域,能夠有效提升對于各項社保信息的處理效率,提升服務(wù)水平。針對以社保服務(wù)為代表的各個行業(yè)和領(lǐng)域中涉及的數(shù)據(jù)分析處理需求,應(yīng)用Python 數(shù)據(jù)結(jié)構(gòu),需要在明確數(shù)據(jù)結(jié)構(gòu)本身運(yùn)行原理的基礎(chǔ)上,充分發(fā)揮SET 數(shù)據(jù)結(jié)構(gòu)的作用優(yōu)勢,以代入社保相關(guān)數(shù)據(jù)的方式來驗證數(shù)據(jù)結(jié)構(gòu)的有效性,明確腳本程序的執(zhí)行流程,確保提升社保數(shù)據(jù)的處理和應(yīng)用效率。

猜你喜歡
批處理數(shù)據(jù)表腳本
酒駕
惡意批處理文件導(dǎo)致電腦黑屏、反復(fù)重啟、無響應(yīng)的原因分析及應(yīng)對思路
基于列控工程數(shù)據(jù)表建立線路拓?fù)潢P(guān)系的研究
數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
快樂假期
圖表
基于PSD-BPA的暫態(tài)穩(wěn)定控制批處理計算方法的實現(xiàn)
基于VSL的動態(tài)數(shù)據(jù)表應(yīng)用研究
田阳县| 龙游县| 舞阳县| 武平县| 板桥市| 佛山市| 肥乡县| 咸宁市| 红桥区| 应城市| 甘孜县| 航空| 东丽区| 洪洞县| 左云县| 建平县| 宁化县| 调兵山市| 阿巴嘎旗| 四子王旗| 图们市| 鄂尔多斯市| 长汀县| 汪清县| 新营市| 冕宁县| 淮安市| 保定市| 辰溪县| 平乡县| 石棉县| 庐江县| 洛隆县| 邳州市| 阿坝县| 哈巴河县| 武穴市| 芦山县| 泸西县| 炎陵县| 砀山县|