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 相关文章推荐
编写自定义的Django模板加载器的简单示例
Jul 21 Python
Python工程师面试题 与Python基础语法相关
Jan 14 Python
python判断字符串是否是json格式方法分享
Nov 07 Python
利用python3随机生成中文字符的实现方法
Nov 24 Python
python redis 删除key脚本的实例
Feb 19 Python
pymongo中group by的操作方法教程
Mar 22 Python
django-allauth入门学习和使用详解
Jul 03 Python
在python plt图表中文字大小调节的方法
Jul 08 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
使用keras内置的模型进行图片预测实例
Jun 17 Python
Matplotlib中%matplotlib inline如何使用
Jul 28 Python
python如何爬取网页中的文字
Jul 28 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
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
php之header的不同用法总结(实例讲解)
2017/11/28 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
Javascript 闭包引起的IE内存泄露分析
2012/05/23 Javascript
用jquery生成二级菜单的实例代码
2013/06/24 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
node.js中的querystring.unescape方法使用说明
2014/12/10 Javascript
使用jQuery实现Web页面换肤功能的要点解析
2016/05/12 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
2016/12/08 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
2017/06/29 Javascript
微信小程序实现聊天对话(文本、图片)功能
2018/07/06 Javascript
微信小程序之自定义组件的实现代码(附源码)
2018/08/02 Javascript
解决vue attr取不到属性值的问题
2018/09/18 Javascript
详解react-refetch的使用小例子
2019/02/15 Javascript
原理深度解析Vue的响应式更新比React快
2020/04/04 Javascript
使用Django和Python创建Json response的方法
2018/03/26 Python
从DataFrame中提取出Series或DataFrame对象的方法
2018/11/10 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
2019/02/21 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
Python利用requests模块下载图片实例代码
2019/08/12 Python
python 实现list或string按指定分段
2019/12/25 Python
在html5的Canvas上绘制椭圆的几种方法总结
2013/01/07 HTML / CSS
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
Java提供了哪些企业应用编程接口
2015/02/13 面试题
工作睡觉检讨书
2014/02/25 职场文书
物业保安员岗位职责
2014/03/14 职场文书
服务员岗位职责范本
2015/04/09 职场文书
音乐之声观后感
2015/06/04 职场文书
2015年基层党建工作汇报材料
2015/06/25 职场文书
转变工作作风心得体会
2016/01/23 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书
解析Java异步之call future
2021/06/14 Java/Android
Python并发编程实例教程之线程的玩法
2021/06/20 Python
elasticSearch-api的具体操作步骤讲解
2021/06/28 Java/Android