Pytables等应用	  Hdf5,numpy,matplotlib	  
需求	  •    可实时序列化的字典,无类型信息丢失	  •    要有>	  2GB的存储体积	  •    要有矩阵(numpy)方式的存储接口	  •    要有GUI工具方便增、删、查、改	  •    快、免费、开源	  
其他数据库	  • bsddb	  Berkeley	  DB	  类型信息丢失	  • Sqllite	  sql接口不方便,类型信息与效率冲突	  • Nosql	  多余的服务器,实时序列不方便	  
Pytables 	    •  流畅性能的坚实基础 上层numpy下层hdf5	    •  简单、快捷的存取接口	  total=sum(row[energy]	  for	  row	  in	  mytable.where((press...
pytables结构	  class	  ParScle(IsDescripSon):	  	  	  	  	  idenSty	  =	  StringCol(itemsize=22,	  dflt="	  ",	  pos=0)	  	  ...
class	  •    File:内存表征文件	  •    Group:逻辑分组	  •    Table: 结构化数据hdf5表征	  •    Array	  :	  数组化hdf5,	  CArrayEArray	  •    Lin...
HDF5	  •  NCSA研制,美国国家高级计算应用中心,风云                卫星使用	  •  6种数据类型,栅格图像、调色板、多维数据、注                释、数据表、数据组	  •  类似一个文件系统,	 ...
工具	  •  GUI工具:java编写	  •  ptdump:	  观察结构、数据	  •  ptrepack:不同文件间拷贝、合并、删除等	  
numpy	  创建:np.arange(0,	  60,	  10).reshape(-­‐1,	  1)	  +	  np.arange(0,	  6)	  
Numpy结构化数组	  import	  numpy	  as	  np	  	  persontype	  =	  np.dtype({	             	  names:[name,	  age,	  weight],	    ...
Matplotlib图库	  
Matplotlib例	  import	  matplotlib.pyplot	  as	  plt	  	  f,	  ax	  =	  plt.subplots()	  ax.plot(x[],	  y[], r-­‐ ,	  label...
谢谢	  
Upcoming SlideShare
Loading in …5
×

Pytables

1,798 views

Published on

python HDF5科学数据库等应用

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,798
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
7
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Pytables

  1. 1. Pytables等应用  Hdf5,numpy,matplotlib  
  2. 2. 需求  •  可实时序列化的字典,无类型信息丢失  •  要有>  2GB的存储体积  •  要有矩阵(numpy)方式的存储接口  •  要有GUI工具方便增、删、查、改  •  快、免费、开源  
  3. 3. 其他数据库  • bsddb  Berkeley  DB  类型信息丢失  • Sqllite  sql接口不方便,类型信息与效率冲突  • Nosql  多余的服务器,实时序列不方便  
  4. 4. Pytables   •  流畅性能的坚实基础 上层numpy下层hdf5   •  简单、快捷的存取接口  total=sum(row[energy]  for  row  in  mytable.where((pressure>10)&(count<1e7))])   •  强劲运算   •  I/O速度超强优化   •  重复/回退   •  超大数据容量   •  数据分层,          数据项多维数组  
  5. 5. pytables结构  class  ParScle(IsDescripSon):          idenSty  =  StringCol(itemsize=22,  dflt="  ",  pos=0)    #  character  String          。。。  fileh  =  openFile("objec]ree.h5",  mode  =  "w")  group1  =  fileh.createGroup(fileh.root,  "group1")  array1  =  fileh.createArray(fileh.root,  "array1",  ["string",  "array"],  "String  array")  table1  =  fileh.createTable(group1,  "table1",  ParScle)  
  6. 6. class  •  File:内存表征文件  •  Group:逻辑分组  •  Table: 结构化数据hdf5表征  •  Array  :  数组化hdf5,  CArrayEArray  •  Link  •  A]ributeSet:h5f.root._v_a]rs.obj  =  myObject    •  Expr:tb.Expr("2*a+b*c ).eval()  #  array([14,  24,   36])  
  7. 7. HDF5  •  NCSA研制,美国国家高级计算应用中心,风云 卫星使用  •  6种数据类型,栅格图像、调色板、多维数据、注 释、数据表、数据组  •  类似一个文件系统,          分层结构  
  8. 8. 工具  •  GUI工具:java编写  •  ptdump:  观察结构、数据  •  ptrepack:不同文件间拷贝、合并、删除等  
  9. 9. numpy  创建:np.arange(0,  60,  10).reshape(-­‐1,  1)  +  np.arange(0,  6)  
  10. 10. Numpy结构化数组  import  numpy  as  np    persontype  =  np.dtype({    names:[name,  age,  weight],    formats:[S32,i,  f]})  a  =  np.array([    ("Zhang",32,75.5),("Wang",24,65.2)],    dtype=persontype)  
  11. 11. Matplotlib图库  
  12. 12. Matplotlib例  import  matplotlib.pyplot  as  plt    f,  ax  =  plt.subplots()  ax.plot(x[],  y[], r-­‐ ,  label= xxx )  ax.grid()  ax.set_Slte( example )  ax.legend()  plt.show()  
  13. 13. 谢谢  

×