hdf5
今天开始准备数据集,准备采用hdf5来整合不同病人的数据。
教程。一般步骤如下:
- 创建并打开文件:
import tables
hdf5_path = "my_data.hdf5"
hdf5_file = tables.open_file(hdf5_path, mode='w')
- 选择数据类型并创建节点
以earray为例。tables提供了几种数据类型,其中最简单的是Array和Carray,后者对应了压缩类型。这两种的存储是直接把内存中的值保存下来。如果数据量过大,不能一次加载到内存中,则可以通过earray。earray可以多次添加保存。如果各个批次数据形状不一样,可以使用VLarray。
# for compression
filters = tables.Filters(complevel=5, complib='blosc')
# data type
atom = tables.Float32Atom()
data_shape = (0,2)
arr = hdf5_file.create_earray(hdf5_file.root,'earray',atom,data_shape,filters=filters)
- 添加数据
arr.append(numpy.array([[1., 2.],
[2., 3.],
[3., 4.]], dtype=numpy.float32 ))
- 关闭文件
hdf5_file.close()
- 读取数据
hdf5_path = "my_data.hdf5"
hdf5_file = tables.openFile(hdf5_path, mode = 'w')
data = hdf5_file.root.earray[:]
ArgParse
然后复习了argParse这一块,教程
这个的框架也很简单:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(......)
args = parser.parse_args()
主要分成固定参数和可选参数两种。顾名思义,前者必须给定,当有多个时,按定义顺序。后者通过符号控制,可以缺省。
import argparse
parser = argparse.ArgumentParser()
# positional arguments
parser.add_argument("square", type = int, help="display a square of a given number")
# optional arguments
parser.add_argument("-v", "--verbose", action="store_true",
help="increase output verbosity")
args = parser.parse_args()
# action
answer = args.square**2
if args.verbose:
print "the square of {} equals {}".format(args.square, answer)
else:
print answer
网友评论