python:HDF和CSV存储优劣对比分析


Posted in Python onJune 08, 2020

小数据用csv,大数据用h5

结论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

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)

python:HDF和CSV存储优劣对比分析

# csv保存
# hdf保存
# csv读取
# hdf读取
程序用时:0.015
程序用时:0.9985
程序用时:0.009
程序用时:0.0369

对比2:数据100*10

df = tool.generate_sampleDF(100,10)

python:HDF和CSV存储优劣对比分析

# csv保存
# hdf保存
# csv读取
# hdf读取
程序用时:0.017
程序用时:1.1016
程序用时:0.01
程序用时:0.013

对比3:数据1000*100

df = tool.generate_sampleDF(1000,100)

python:HDF和CSV存储优劣对比分析

# csv保存
# hdf保存
# csv读取
# hdf读取
程序用时:0.2383
程序用时:1.0308
程序用时:0.0499
程序用时:0.016

对比4:数据10000*100

df = tool.generate_sampleDF(10000,100)

python:HDF和CSV存储优劣对比分析

# 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)

python:HDF和CSV存储优劣对比分析

# csv保存
# hdf保存
# csv读取
# hdf读取
程序用时:23.5693
程序用时:2.2057
程序用时:3.3697
程序用时:0.0619

补充知识:python:n个点m条边有权无向图

n个点:有个位置

m条边:两点之间存在m条边有权值

有权:每条边代表一个数值

无向:没有规定行进方向

规定:

1、两点之间的行进路线,最终权值为所经过的边的权值的最大值

2、两点之间走法不止一个,最终取最小值为最终走法

问:

两点之间的最终权值为多少

python:HDF和CSV存储优劣对比分析

如上图,我们可以将其写为列表形式,前两位是从小到大的的两个点,最后一个代表权值,如
[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:
        if (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.items():
    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存储优劣对比分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
May 06 Python
一个基于flask的web应用诞生 flask和mysql相连(4)
Apr 11 Python
Python语言描述最大连续子序列和
Dec 05 Python
python调用百度语音识别实现大音频文件语音识别功能
Aug 30 Python
解决python中画图时x,y轴名称出现中文乱码的问题
Jan 29 Python
python保存字典和读取字典的实例代码
Jul 07 Python
python-xpath获取html文档的部分内容
Mar 06 Python
查看keras各种网络结构各层的名字方式
Jun 11 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
Jun 15 Python
python MD5加密的示例
Oct 19 Python
python pillow库的基础使用教程
Jan 13 Python
详解Python中__new__方法的作用
Mar 31 Python
Python实现一个简单的毕业生信息管理系统的示例代码
Jun 08 #Python
Python while true实现爬虫定时任务
Jun 08 #Python
python 实现rolling和apply函数的向下取值操作
Jun 08 #Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
Jun 08 #Python
Python实现查找数据库最接近的数据
Jun 08 #Python
python numpy库np.percentile用法说明
Jun 08 #Python
python thrift 实现 单端口多服务的过程
Jun 08 #Python
You might like
php 生成自动创建文件夹并上传文件的示例代码
2014/03/07 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
php实现微信公众号无限群发
2015/10/11 PHP
Jquery常用技巧收集整理篇
2010/11/14 Javascript
JQuery扩展插件Validate 1 基本使用方法并打包下载
2011/09/05 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
Jquery代码实现图片轮播效果(一)
2015/08/12 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
2015/08/25 Javascript
JavaScript前端开发之实现二进制读写操作
2015/11/04 Javascript
js实现可键盘控制的简单抽奖程序
2016/07/13 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
详解vue.js全局组件和局部组件
2017/04/10 Javascript
基于JavaScript实现的折半查找算法示例
2017/04/14 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
2017/05/27 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
一秒学会微信小程序制作table表格
2019/02/14 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
详解vue beforeEach 死循环问题解决方法
2020/02/25 Javascript
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
2018/06/13 Python
Python第三方库face_recognition在windows上的安装过程
2019/05/03 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
英国轻奢珠宝品牌:Astley Clarke
2016/12/18 全球购物
工作自我评价分享
2013/12/01 职场文书
会计系个人求职信范文分享
2013/12/20 职场文书
学生党员思想汇报范文
2014/01/09 职场文书
电子商务专业毕业生求职信
2014/06/12 职场文书
教师对照四风自我剖析材料
2014/09/30 职场文书
python基础之类方法和静态方法
2021/10/24 Python
golang生成并解析JSON
2022/04/14 Golang
CSS 左边固定宽右边自适应的6种方法
2022/05/15 HTML / CSS