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采用requests库模拟登录和抓取数据的简单示例
Jul 05 Python
简介Python设计模式中的代理模式与模板方法模式编程
Feb 02 Python
使用python3.5仿微软记事本notepad
Jun 15 Python
获取python文件扩展名和文件名方法
Feb 02 Python
Python实现OpenCV的安装与使用示例
Mar 30 Python
python实现点对点聊天程序
Jul 28 Python
pandas对dataFrame中某一个列的数据进行处理的方法
Jul 08 Python
python rsa实现数据加密和解密、签名加密和验签功能
Sep 18 Python
python+mysql实现个人论文管理系统
Oct 25 Python
关于sys.stdout和print的区别详解
Dec 05 Python
pyinstaller还原python代码过程图解
Jan 08 Python
python使用pyecharts库画地图数据可视化的实现
Mar 25 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的分页功能
2007/03/21 PHP
Dedecms常用函数解析
2008/02/01 PHP
PHP教程 预定义变量
2009/10/23 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
php中用memcached实现页面防刷新功能
2014/08/19 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
2015/03/03 PHP
基于php实现的验证码小程序
2016/12/13 PHP
php DES加密算法实例分析
2019/09/18 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
jquery库文件略庞大用纯js替换jquery的方法
2014/08/12 Javascript
JavaScript中的DSL元编程介绍
2015/03/15 Javascript
vue学习笔记之指令v-text && v-html && v-bind详解
2017/05/12 Javascript
Angular X中使用ngrx的方法详解(附源码)
2017/07/10 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
2017/09/08 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
2018/09/19 Javascript
详解Vue中使用Axios拦截器
2019/04/22 Javascript
layui表格数据重载
2019/07/27 Javascript
ElementUI之Message功能拓展详解
2019/10/18 Javascript
js实现可爱的气泡特效
2020/09/05 Javascript
浅析python中的分片与截断序列
2016/08/09 Python
详解K-means算法在Python中的实现
2017/12/05 Python
Python选择网卡发包及接收数据包
2019/04/04 Python
浅析Python requests 模块
2020/10/09 Python
关于canvas.toDataURL 在iOS运行失败的问题解决
2020/09/16 HTML / CSS
亚马逊新加坡官方网站:Amazon.sg
2020/03/25 全球购物
Fenty Beauty官网:蕾哈娜创立的美妆品牌
2021/01/07 全球购物
通信研究生自荐信
2014/02/01 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
放飞梦想演讲稿
2014/05/05 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书
python opencv通过按键采集图片源码
2021/05/20 Python
MySQL基于索引的压力测试的实现
2021/11/07 MySQL
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫