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中self的用法
Jun 04 Python
python中os和sys模块的区别与常用方法总结
Nov 14 Python
python字符串与url编码的转换实例
May 10 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
May 21 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
Jan 26 Python
Python2.7实现多进程下开发多线程示例
May 31 Python
pandas数据处理进阶详解
Oct 11 Python
Python实现socket非阻塞通讯功能示例
Nov 06 Python
在Django下创建项目以及设置settings.py教程
Dec 03 Python
python实现ftp文件传输功能
Mar 20 Python
tensorflow之读取jpg图像长和宽实例
Jun 18 Python
windows+vscode安装paddleOCR运行环境的步骤
Nov 11 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类的封装与继承详解
2015/09/29 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
2019/12/03 PHP
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
2011/02/16 Javascript
JavaScript中的排序算法代码
2011/02/22 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
2013/06/17 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
解析jquery easyui tree异步加载子节点问题
2017/03/08 Javascript
javascript 中null和undefined区分和比较
2017/04/19 Javascript
bootstrapvalidator之API学习教程
2017/06/29 Javascript
vue进行图片的预加载watch用法实例讲解
2018/02/07 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
2018/09/14 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
antd日期选择器禁止选择当天之前的时间操作
2020/10/29 Javascript
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
Python3使用SMTP发送带附件邮件
2020/06/16 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
django框架自定义模板标签(template tag)操作示例
2019/06/24 Python
pycharm运行scrapy过程图解
2019/11/22 Python
Python转换字典成为对象,可以用"."方式访问对象属性实例
2020/05/11 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
2021/01/28 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
html5开发三八女王节表白神器
2018/03/07 HTML / CSS
Aosom西班牙:家具在线商店
2020/06/11 全球购物
Brasty罗马尼亚:购买手表、香水、化妆品、珠宝
2020/04/21 全球购物
园长自我鉴定
2013/10/06 职场文书
学院领导推荐信
2013/10/30 职场文书
污水厂厂长岗位职责
2014/01/04 职场文书
信息技术课后反思
2014/04/27 职场文书
竞选大队长演讲稿
2014/04/29 职场文书