這篇文章給大家分享的是有關(guān)NumPy.npy與pandas DataFrame的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
10年積累的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先做網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有南陵免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。用CSV格式來保存文件是個(gè)不錯(cuò)的主意,因?yàn)榇蟛糠殖绦蛟O(shè)計(jì)語言和應(yīng)用程序都能處理這種格式,所以交流起來非常方便。然而這種格式的存儲(chǔ)效率不是很高,原因是CSV及其他純文本格式中含有大量空白符;而后來發(fā)明的一些文件格式,如zip、bzip和gzip等,壓縮率則有了顯著提升。
首先導(dǎo)入模塊:
In [1]: import numpy as np In [2]: import pandas as pd In [3]: from tempfile import NamedTemporaryFile In [4]: from os.path import getsize
這里我們將使用Python標(biāo)準(zhǔn)的NamedTemporaryFile來存儲(chǔ)數(shù)據(jù),這些臨時(shí)文件隨后會(huì)自動(dòng)刪除。
接下來獲取CSV文件格式的大?。?/strong>
In [5]: np.random.seed(42) In [6]: a = np.random.randn(365,4) In [7]: tmpf = NamedTemporaryFile() In [8]: np.savetxt(tmpf,a,delimiter=',') In [9]: print("Size CSV file",getsize(tmpf.name)) Size CSV file 36693
下面首先以NumPy.npy格式來保存該數(shù)組,隨后載入內(nèi)存,并檢查數(shù)組的形狀以及.npy文件的大?。?/strong>
In [10]: tmpf = NamedTemporaryFile() In [11]: np.save(tmpf,a) In [12]: tmpf.seek(0) Out[12]: 0 In [13]: loaded = np.load(tmpf) In [14]: print("Shape",loaded.shape) Shape (365, 4) In [15]: print("Size .npy file",getsize(tmpf.name)) Size .npy file 11760
.npy文件的大小只有CSV文件的三分之一左右。實(shí)際上,利用Python可以存儲(chǔ)任意復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。也可以序列化格式來存儲(chǔ)pandas的DataFrame或者Series數(shù)據(jù)結(jié)構(gòu)
在Python中,pickle是將Python對象存儲(chǔ)到磁盤或其他介質(zhì)時(shí)采用的一種格式,這個(gè)格式化的過程叫做序列化。之后,我們可以從存儲(chǔ)器中重建該P(yáng)ython對象,這個(gè)逆過程稱為反序列化。并非所有的Python對象都能夠序列化;不過借助諸如dill之列的模塊,可以將更多種類的Python對象序列化。
首先用前面生成的NumPy數(shù)組創(chuàng)建一個(gè)DataFame,接著用to_pickle()方法將其寫入一個(gè)pickle對象中,然后用read_pickle()函數(shù)從這個(gè)pickle對象中檢索該DataFrame:
In [16]: tmpf.name Out[16]: '/tmp/tmpyy06safp' In [17]: df = pd.DataFrame(a) In [18]: df.to_pickle(tmpf.name) 是將DataFrame()寫入到/tmp/tmpyy06safp中 In [19]: print("Size pickled dataframes",getsize(tmpf.name)) Size pickled dataframes 12250 In [20]: tmpf.name Out[20]: '/tmp/tmpyy06safp' In [21]: print("DF from pickle\n",pd.read_pickle(tmpf.name)) DF from pickle 0 1 2 3 0 0.496714 -0.138264 0.647689 1.523030 1 -0.234153 -0.234137 1.579213 0.767435 2 -0.469474 0.542560 -0.463418 -0.465730 3 0.241962 -1.913280 -1.724918 -0.562288 4 -1.012831 0.314247 -0.908024 -1.412304 5 1.465649 -0.225776 0.067528 -1.424748 6 -0.544383 0.110923 -1.150994 0.375698 7 -0.600639 -0.291694 -0.601707 1.852278 8 -0.013497 -1.057711 0.822545 -1.220844 9 0.208864 -1.959670 -1.328186 0.196861 10 0.738467 0.171368 -0.115648 -0.301104 11 -1.478522 -0.719844 -0.460639 1.057122 12 0.343618 -1.763040 0.324084 -0.385082 13 -0.676922 0.611676 1.031000 0.931280 14 -0.839218 -0.309212 0.331263 0.975545 15 -0.479174 -0.185659 -1.106335 -1.196207 16 0.812526 1.356240 -0.072010 1.003533 17 0.361636 -0.645120 0.361396 1.538037 18 -0.035826 1.564644 -2.619745 0.821903 19 0.087047 -0.299007 0.091761 -1.987569 20 -0.219672 0.357113 1.477894 -0.518270 21 -0.808494 -0.501757 0.915402 0.328751 22 -0.529760 0.513267 0.097078 0.968645 23 -0.702053 -0.327662 -0.392108 -1.463515 24 0.296120 0.261055 0.005113 -0.234587 25 -1.415371 -0.420645 -0.342715 -0.802277 26 -0.161286 0.404051 1.886186 0.174578 27 0.257550 -0.074446 -1.918771 -0.026514 28 0.060230 2.463242 -0.192361 0.301547 29 -0.034712 -1.168678 1.142823 0.751933 .. ... ... ... ... 335 0.160574 0.003046 0.436938 1.190646 336 0.949554 -1.484898 -2.553921 0.934320 337 -1.366879 -0.224765 -1.170113 -1.801980 338 0.541463 0.759155 -0.576510 -2.591042 339 -0.546244 0.391804 -1.478912 0.183360 340 -0.015310 0.579291 0.119580 -0.973069 341 1.196572 -0.158530 -0.027305 -0.933268 342 -0.443282 -0.884803 -0.172946 1.711708 343 -1.371901 -1.613561 1.471170 -0.209324 344 -0.669073 1.039905 -0.605616 1.826010 345 0.677926 -0.487911 2.157308 -0.605715 346 0.742095 0.299293 1.301741 1.561511 347 0.032004 -0.753418 0.459972 -0.677715 348 2.013387 0.136535 -0.365322 0.184680 349 -1.347126 -0.971614 1.200414 -0.656894 350 -1.046911 0.536653 1.185704 0.718953 351 0.996048 -0.756795 -1.421811 1.501334 352 -0.322680 -0.250833 1.328194 0.556230 353 0.455888 2.165002 -0.643518 0.927840 354 0.057013 0.268592 1.528468 0.507836 355 0.538296 1.072507 -0.364953 -0.839210 356 -1.044809 -1.966357 2.056207 -1.103208 357 -0.221254 -0.276813 0.307407 0.815737 358 0.860473 -0.583077 -0.167122 0.282580 359 -0.248691 1.607346 0.490975 0.734878 360 0.662881 1.173474 0.181022 -1.296832 361 0.399688 -0.651357 -0.528617 0.586364 362 1.238283 0.021272 0.308833 1.702215 363 0.240753 2.601683 0.565510 -1.760763 364 0.753342 0.381158 1.289753 0.673181 [365 rows x 4 columns]
感謝各位的閱讀!關(guān)于“NumPy.npy與pandas DataFrame的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
網(wǎng)頁名稱:NumPy.npy與pandasDataFrame的示例分析-創(chuàng)新互聯(lián)
地址分享:http://muchs.cn/article46/dgcshg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、自適應(yīng)網(wǎng)站、App設(shè)計(jì)、企業(yè)網(wǎng)站制作、商城網(wǎng)站、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容