最近一直没更新python&量化的博客,是因为忙于看HDF5的书,写VNPY框架,学scrapy爬虫。

本来写博客的目的就是为了当作一种教材,当遇到不会的问题过来找答案。

对于HDF5下面这本书写的很详细了,国内针对HDF5的教材少之又少,python这块应该只有这一本。

大概说下,为什么用HDF5吧。一般股票或期货的历史K线数据都会使用MySql或MongoDB(VNPY用的它),但是有下面两个缺点:

1、速度:不管是mysql还是Mongodb的读写都存在进程间通信的问题,不同进程间无法直接通讯,需借助其他工具,这就会增加读写时间。

2、大小:由于数据库(尤其是关系型数据库)在保存数据信息时,还会插入一些关系数据等信息,一同保存进入文件,对股票历史k线数据,这种高度结构化的数据,这些关系数据本身是没用的。额外了占用了存储空间。

HDF5优点:

1、速度:直接从硬盘读入内存,绕开了进程间通讯,速度极快。同时它支持切片读取,即不需要把整个dataset读入内存,只读取切片即可。速度和大小都有优化

2、大小:把股票历史数据的dataframe数据作为dataset存入HDF5,列名和索引作为元数据存入HDF5,这样基本上HDF5里没有了与数据不相关的内容,加之其可以使用GZIP和LZF压缩过滤器,在牺牲一部分写入速度的同时,大大减小了存储空间。

大家如果想看的话,就买这本书吧,内容挺全的,基本上能覆盖日常的应用。京东上有卖。

最后附上该书的目录xmind文件:

https://files.cnblogs.com/files/GavinSimons/Python%26HDF5.rar

转载于:https://www.cnblogs.com/GavinSimons/p/8338470.html

PythonHDF5目录相关推荐

  1. http://blog.csdn.net/neiloid/article/details/7037093#

    1. 显示系统中全部Android平台: android list targets 2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器): androi ...

  2. zip压缩多个文件,解压时不包含目录层级

    假设我们有个目录叫 dev,dev中有很多文件,我们想要将dev中的文件打包,名字可能叫dev.zip,但当我们解压的时候,不想要解压生成一个dev目录,想要直接解压在当前目录,这样如何压缩呢? # ...

  3. 将文件上传至ftp服务器,FTP文件上传工具类,将文件上传至服务器指定目录

    将文件上传至ftp服务器,传入File对象,将文件上传至ftp服务器 需要配置修改的点: 1. 服务器ip端口(服务器ip 端口22/21). 2. 服务器账号密码(服务器登录用户名密码). 3. 上 ...

  4. Go 学习笔记(84)— Go 项目目录结构

    1. 目录规范 一个好的目录结构至少要满足以下几个要求. 命名清晰:目录命名要清晰.简洁,不要太长,也不要太短,目录名要能清晰地表达出该目录实现的功能,并且目录名最好用单数.一方面是因为单数足以说明这 ...

  5. GCC 连接器、链接标准库 gcc -l、链接手动创建库(指定目录的库 gcc -L)

    1. 链接器 链接器把多个二进制的目标文件(object file)链接成一个单独的可执行文件. 在链接过程中,它必须把符号(变量名.函数名等一些列标识符)用对应的数据的内存地址(变量地址.函数地址等 ...

  6. Go 语言同一个包内函数调用、包名和实际路径最后一个目录不一致问题

    以下代码的 GOPATH 路径为 "/home/wohu/GoCode" 1. 同一个包内的函数可以相互调用 代码结构如下: wohu@wohu:~/GoCode/src$ tre ...

  7. Linux shell 学习笔记(1)— 文件和目录(查看、创建、复制、软硬链接、重命名及删除操作)

    1. 启动 shell /etc/passwd 文件包含了所有系统用户账户列表以及每个用户的基本配置信息: christine:x:501:501:Christine Bresnahan:/home/ ...

  8. Python 标准库之 os (获取当前目录、读取/设置环境变量、重命名文件、运行shell命令、创建/删除/查看目录文件、判断目录/文件/存在、获取绝对路径、获取文件名、获取换行符、获取路径分隔符)

    1. os与sys模块的官方解释如下: os This module provides a portable way of using operating system dependent funct ...

  9. Docker 入门系列(4)- Docker 数据管理(挂载目录、挂载文件、数据卷挂载、数据卷共享、数据卷删除、数据卷容器备份和恢复)

    基于底层存储实现,Docker 提供了三种适用于不同场景的文件系统挂载方式:Bind Mount.Volume 和 Tmpfs Mount. Bind Mount 能够直接将宿主操作系统中的目录和文件 ...

  10. 解决LC_ALL: 无法改变区域选项 (UTF-8): 没有那个文件或目录的问题

    问题: -bash: 警告:setlocale: LC_ALL: 无法改变区域选项 (UTF-8): 没有那个文件或目录 -bash: 警告:setlocale: LC_ALL: 无法改变区域选项 ( ...

最新文章

  1. HTTP [TCP Retransmission] Continuation or non-HTTP traffic[Packet size limited during capture]
  2. Jmeter连接到Mysql
  3. (零)音视频技术基础知识,现实项目
  4. Java实例化后自动执行_Java的实例化顺序(程序执行顺序)
  5. mysql 两张大表关联_MySQL的DropTable影响分析和最佳实践
  6. STM8学习笔记---PWM互补波形输出
  7. 在head标签内css代码,怎么在head区域引入css
  8. SQLLoader2(导入EXCEL或csv格式的文件)
  9. 170705、springboot编程之自定义properties
  10. 计算机如何实现截长图功能,只会Ctrl+Alt+A?告诉你电脑截长图的5大方法
  11. 华为手机 图标消失_华为手机桌面图标不见了怎么办
  12. 华三交换机如何进入配置_华三交换机配置方法及操作案例
  13. 电路板上的插头怎么拔下来_怎么从电路板上拆卸多针脚电子元器件
  14. 【Nginx】记录 nginx 配置文件中 location下根据 ua (user-agent) 判断移动端和电脑端不同浏览器来源
  15. 特殊符号♪♫♩♬♭♪♫♩♬♭
  16. PostgreSQL测试套-pg_regress使用
  17. 字符数组 字符插入(c语言)
  18. js 时间与时间戳的转换
  19. 256色图像不一定是灰度图像
  20. 2017上海大学计算机考研分数线,2017年上海大学考研复试分数线以及复试通知

热门文章

  1. 使用StatSVN编译代码变更(未成功)
  2. NV21转YUV420SP的代码
  3. Migrate Project to Gradle? This project does not use the Gradle build system
  4. 用shell把所有文件名修改为小写
  5. 保留正常工作的环境,等自己的搞好后再替换
  6. TensorRT同时加载多个模型很容易崩溃
  7. 想起“不能什么都是你来干”
  8. UBUNTU上安装OPENSIPS
  9. C++/CLI C#字符串转为C++字符串正确写法
  10. html flash背景透明写法,如何让Flash不遮挡HTML div元素的技巧