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