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的Flask框架中配置多个子域名的方法讲解
Jun 07 Python
python中的字典使用分享
Jul 31 Python
浅谈Python中带_的变量或函数命名
Dec 04 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
May 04 Python
python获取中文字符串长度的方法
Nov 14 Python
使用Python横向合并excel文件的实例
Dec 11 Python
Python 实现子类获取父类的类成员方法
Jan 11 Python
PyQt5固定窗口大小的方法
Jun 18 Python
Python Tkinter Entry和Text的添加与使用详解
Mar 04 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
Mar 12 Python
Python实现计算图像RGB均值方式
Jun 04 Python
pytorch 6 batch_train 批训练操作
May 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
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
js读取本地excel文档数据的代码
2010/11/11 Javascript
Nodejs爬虫进阶教程之异步并发控制
2016/02/15 NodeJs
JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)
2016/02/16 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
node.js使用cluster实现多进程
2016/03/17 Javascript
详解Node.js项目APM监控之New Relic
2017/05/12 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
详解微信小程序调用支付接口支付
2019/04/28 Javascript
vux-scroller实现移动端上拉加载功能过程解析
2019/10/08 Javascript
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
2015/11/07 Python
python遍历一个目录,输出所有的文件名的实例
2018/04/23 Python
python读取csv和txt数据转换成向量的实例
2019/02/12 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
Django项目中实现使用qq第三方登录功能
2019/08/13 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
Python logging模块handlers用法详解
2020/08/14 Python
使用豆瓣源来安装python中的第三方库方法
2021/01/26 Python
HTML5添加鼠标悬浮音响效果不使用FLASH
2014/04/23 HTML / CSS
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
任命书范本大全
2014/06/06 职场文书
殡葬服务心得体会
2014/09/11 职场文书
长江三峡导游词
2015/01/31 职场文书
离职信范本
2015/06/23 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
职业规划从高考志愿专业选择开始
2019/08/08 职场文书
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers
python3读取文件指定行的三种方法
2021/05/24 Python
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL
python中 .npy文件的读写操作实例
2022/04/14 Python
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL