python HDF和CSV儲存優劣對比分析

2022-09-26 12:27:31 字數 3307 閱讀 3222

小資料用csv,大資料用h5

結論1:幾百kb以上的資料都用h5比較好

結論2:幾kb的資料h5反而很慢

程式import pandas as pd

impwww.cppcns.comort numpy as np

from wja.wja_tool import test_time as tt

from wja import wja_tool as tool

df = tool.generate_sampledf(row, col)

tt().run()

df.to_csv('try.csv')

tt().end()

tt().run()

df.to_hdf('try.h5','df',mode='w')

tt().end()

tt().run()

df1 = pd.read_csv('try.csv')

tt().end()

tt().run()

df2 = pd.read_hdf('try.h5')

tt().end()

對比1:資料10*1

df = tool.generate_sampledf(10,1)

# csv儲存

# hdf儲存

# csv讀取

# hdf讀取

程式用時:0.015

程式用時:0.9985

程式用時:0.009

程式用時:0.0369

對比2:資料100*10

df = tool.generate_sampledf(100,10)

# csv儲存

# hdf儲存

# csv讀取

# hdf讀取

程式用時:0.017

程式用時:1.1016

程式用時:0.01

程式用時:0.013

對比3:資料1000*100

df = tool.generate_sampledf(1000,100)

# csv儲存

# hdf儲存

# csv讀取

# hdf讀取

程式用時:0.2383

程式用時:1.0308

程式用時:0.0499

程式用時:0.016

對比4:資料10000*100

df = tool.generate_sampledf(10000,100)

# csv儲存

# hdf儲存

# csv讀取

# hdf讀取

程式用時:2.0895

程式用時:1.0073

程式用時:0.4055

程式用時:0.0169

對比5:資料10000*1000

# csv儲存

# hdf儲存

# csv讀取

# hdf讀取

df = tool.generate_sampledf(10000,1000)

# csv儲存

# hdf儲存

# csv讀取

# hdf讀取

程式用時:23.5693

程式用時:2.2057

程式用時:3.3697

程式用時:0.0619

補充知識程式設計客棧:python:n個點m條邊有權無向圖

n個點:有個位置

m條邊:兩點之間存在m條邊有權值

有權:每條邊代表乙個數值

無向:沒有規定行進方向

規定:1、兩點之間的行進路線,最終權值為所經過的邊的權值的最大值

2、兩點之間走法不止乙個,最終取最小值為最終走法

問:兩點之間的最終權值為多少

如上圖,我們可以將其寫為列表形式,前兩位是從小到大的的兩個點,最後乙個代表權值,如

[1, 2, 2] 代表1和2之間的權值是2,以此類推

n,m = 5, 10

road = [[1, 2, 2], [1, 3, 3], [1, 4, 7], [1, 5, 2],

[2, 3, 4], [2, 4, 9], [2, 5, 5], [3, 4, 4],

[3, 5, 5], [4, 5, 3]]

def hold(list1, list2):

jiaoji = list(set(list1)&set(list2))

need = [i for i in set(list1+list2) if i not in jiaoji]

need.sort()

return need

def get(road):

option = {}

for i in range (m):

option[(road[i][0],road[i][1])] = [road[i][2]]

for i in range (m):

for j in range(i+1,m):

dot = hold(road[i][:2], road[j][:2])

if len(dot)==2:

ifwww.cppcns.com (dot[0],dot[1]) in option.keys():

option[(dot[0],dot[1])].append(max([road[i][2],road[j][2]]))

else:

option[(dot[0],dot[1])] =

option[(dot[0],dot[1])].append(max([road[i][2],road[j][2]]))

road_new =

for i in option.itewww.cppcns.comms():

road_new.append(list(i[0])+[min(i[1])])

if road==road_new:

print(road_new)

return road_new

return get(road_new)

輸出結果

所有可能的走法如下,並且最後一位輸出最短的權值路徑。

例如 [2, 3, 3]:代表 從2走到3最短的權值路徑是3,對應路徑從圖中可以到是2-1-3

例如 [3, 5, 3]:代表 從3走到5最短的權值路徑是3,對應路徑從圖中可以到是3-1-5

[[1, 2, 2], [1, 3, 3], [1, 4, 3], [1, 5, 2], [2, 3, 3],

[2, 4, 3], [2, 5, 2], [3, 4, 3], [3, 5, 3], [4, 5, 3]]

本文標題: python:hdf和csv儲存優劣對比分析

本文位址: /jiaoben/python/317279.html

python HDF和CSV儲存優劣對比

結論1 幾百kb以上的資料都用h5比較好 結論2 幾kb的資料h5反而很慢 import pandas as pd import numpy as np from wja.wja tool import test time as tt from wja import wja tool as tool...

資料儲存 CSV檔案讀取和儲存

import csvdef read csv demo1 with open r c users administrator desktop classroom1.csv as f reader csv.reader f 構造讀取器 把檔案指標傳給csv.reader 方法並賦值給reader,返回...

CSV檔案儲存

csv檔案儲存 csv,全稱為 comma separated vaules,翻譯為逗號分隔值或字元分隔值,其檔案以純文字形式儲存 資料。該檔案是乙個字串行,可以由任意數目的記錄組成,記錄間以某種換行符分隔。每條記錄由欄位組成,字段之間的分隔符是字串或其他字元,最常見的是逗號或製表符。不過所有記錄都...