h5py package to create HDF5 file

Link: http://docs.h5py.org/en/latest/mpi.html

An HDF5 file is a container for two kinds of objects:

  • datasets, which are array-like collections of data,
  • groups, which are folder-like containers that hold datasets and other groups.

where: Groups work like dictionaries, and datasets work like NumPy arrays


In [17]:
import h5py
import numpy as np

In [27]:
!rm mytestfile.hdf5

In [28]:
# create a new hdf5 file
f = h5py.File("mytestfile.hdf5", "w")

In [100]:
f.filename, f.name


Out[100]:
('mytestfile.hdf5', '/')

dataset


In [29]:
# you can create group or dataset into the file
# Using existing data:
data = np.random.logistic(size=100)
dsetdata = f.create_dataset("dsetdata", data=data)
print(dsetdata)

# Creating the dataset without data
dsetname = f.create_dataset(
    "dsetname", shape=(100, ), dtype='i')  # i, f, etc..
print(dsetname)


<HDF5 dataset "dsetdata": shape (100,), type "<f8">
<HDF5 dataset "dsetname": shape (100,), type "<i4">

In [35]:
dsetdata.dtype, dsetdata.shape, dsetdata.size


Out[35]:
(dtype('float64'), (100,), 100)

In [99]:
# check data in filename
for i in f.items():
    print(i)


('dsetdata', <HDF5 dataset "dsetdata": shape (100,), type "<f8">)
('dsetname', <HDF5 dataset "dsetname": shape (100,), type "<i4">)

In [60]:
# support array-style slicing, example of read/write in this cell
dsetname[0] = 5
dsetname[5:15] = np.random.uniform(size=10,low=0, high=5)
dsetname[10:20:2]


Out[60]:
array([2, 1, 4, 0, 0], dtype=int32)

In [58]:
dsetname.value, dsetname.name, dsetname.fillvalue, dsetname.shuffle


Out[58]:
(array([5, 0, 0, 0, 0, 4, 4, 4, 4, 0, 1, 3, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0], dtype=int32), '/dsetname', 0, False)

groups


In [106]:
# “HDF” stands for “Hierarchical Data Format”.
# Every object in an HDF5 file has a name, and they’re arranged in a POSIX-style hierarchy with /-separators
print(f.name, dsetname.name, dsetdata.name)

# create subgroup
grp = f.create_group("subgroup")

# create dataset from the group variable
dset2 = grp.create_dataset("another_dataset", (50, ), dtype='f')
dset2.name


/ /dsetname /dsetdata
Out[106]:
'/subgroup/another_dataset'

In [107]:
# giving a full path, each group will be created
dset3 = f.create_dataset('subgroup2/dataset_three', (10,), dtype='i')
dset3.name


Out[107]:
'/subgroup2/dataset_three'

In [109]:
# get dataset using full path
dataset_three = f['subgroup2/dataset_three']
dataset_three


Out[109]:
<HDF5 dataset "dataset_three": shape (10,), type "<i4">

In [113]:
"subgroup/another_dataset" in f


Out[113]:
True

In [114]:
# wrong way to check the entire tree structure
for name in f:
    print(name)


dsetdata
dsetname
subgroup
subgroup2

In [132]:
# iterate over the file or group using visit() or visititems() which both take a callable
def printname(x):
    print(x)


f.visit(printname)
print('')
grp.visit(printname)


dsetdata
dsetname
subgroup
subgroup/another_dataset
subgroup2
subgroup2/dataset_three

another_dataset

metadata


In [87]:
# you can store metadata right next to the data (groups and datasets) it describes (in a dictionary interface)
dsetname.attrs['descrizione'] = 'dati a caso'
dsetname.attrs['data'] = '04/04/2014'
dsetname.attrs['pippo'] = 150
'data' in dsetname.attrs


Out[87]:
True

In [92]:
# see all metadata
for i in dsetname.attrs.items():
    print(i)


('descrizione', 'dati a caso')
('data', '04/04/2014')
('pippo', 150)

In [166]:
f.close()

From pandas dataframe to hdf5 and viceversa


In [239]:
!rm iris.hdf5

In [240]:
import pandas as pd
df = pd.read_csv('iris.csv')
df.to_hdf(path_or_buf='iris.hdf5', key='iris_', mode='w', format='fixed')
# fixed format: Fast writing/reading. Not-appendable, nor searchable 
# table forma: Write as a PyTables Table structure which may perform worse 
#              but allow more flexible operations like searching selecting subsets of the data

In [231]:
# reopen the file and check the structure and how it has stored the columns etc..
newf = h5py.File('iris.hdf5')

newf.visit(printname)


iris_
iris_/axis0
iris_/axis1
iris_/block0_items
iris_/block0_values
iris_/block1_items
iris_/block1_values
iris_/block2_items
iris_/block2_values

In [232]:
for i in newf.keys():
    for j in newf[i].keys():
        print(newf[i + '/' + j])


<HDF5 dataset "axis0": shape (7,), type "|S12">
<HDF5 dataset "axis1": shape (150,), type "<i8">
<HDF5 dataset "block0_items": shape (4,), type "|S12">
<HDF5 dataset "block0_values": shape (150, 4), type "<f8">
<HDF5 dataset "block1_items": shape (2,), type "|S10">
<HDF5 dataset "block1_values": shape (150, 2), type "<i8">
<HDF5 dataset "block2_items": shape (1,), type "|S7">
<HDF5 dataset "block2_values": shape (1,), type "|O">

In [233]:
for i in newf.keys():
    for j in newf[i].keys():
        print(newf[i + '/' + j].name)
        print(newf[i + '/' + j].value, end='\n\n')


/iris_/axis0
[b'Unnamed: 0' b'sepal_length' b'sepal_width' b'petal_length'
 b'petal_width' b'species' b'species_id']

/iris_/axis1
[  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17
  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35
  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53
  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71
  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89
  90  91  92  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107
 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
 144 145 146 147 148 149]

/iris_/block0_items
[b'sepal_length' b'sepal_width' b'petal_length' b'petal_width']

/iris_/block0_values
[[ 5.1  3.5  1.4  0.2]
 [ 4.9  3.   1.4  0.2]
 [ 4.7  3.2  1.3  0.2]
 [ 4.6  3.1  1.5  0.2]
 [ 5.   3.6  1.4  0.2]
 [ 5.4  3.9  1.7  0.4]
 [ 4.6  3.4  1.4  0.3]
 [ 5.   3.4  1.5  0.2]
 [ 4.4  2.9  1.4  0.2]
 [ 4.9  3.1  1.5  0.1]
 [ 5.4  3.7  1.5  0.2]
 [ 4.8  3.4  1.6  0.2]
 [ 4.8  3.   1.4  0.1]
 [ 4.3  3.   1.1  0.1]
 [ 5.8  4.   1.2  0.2]
 [ 5.7  4.4  1.5  0.4]
 [ 5.4  3.9  1.3  0.4]
 [ 5.1  3.5  1.4  0.3]
 [ 5.7  3.8  1.7  0.3]
 [ 5.1  3.8  1.5  0.3]
 [ 5.4  3.4  1.7  0.2]
 [ 5.1  3.7  1.5  0.4]
 [ 4.6  3.6  1.   0.2]
 [ 5.1  3.3  1.7  0.5]
 [ 4.8  3.4  1.9  0.2]
 [ 5.   3.   1.6  0.2]
 [ 5.   3.4  1.6  0.4]
 [ 5.2  3.5  1.5  0.2]
 [ 5.2  3.4  1.4  0.2]
 [ 4.7  3.2  1.6  0.2]
 [ 4.8  3.1  1.6  0.2]
 [ 5.4  3.4  1.5  0.4]
 [ 5.2  4.1  1.5  0.1]
 [ 5.5  4.2  1.4  0.2]
 [ 4.9  3.1  1.5  0.1]
 [ 5.   3.2  1.2  0.2]
 [ 5.5  3.5  1.3  0.2]
 [ 4.9  3.1  1.5  0.1]
 [ 4.4  3.   1.3  0.2]
 [ 5.1  3.4  1.5  0.2]
 [ 5.   3.5  1.3  0.3]
 [ 4.5  2.3  1.3  0.3]
 [ 4.4  3.2  1.3  0.2]
 [ 5.   3.5  1.6  0.6]
 [ 5.1  3.8  1.9  0.4]
 [ 4.8  3.   1.4  0.3]
 [ 5.1  3.8  1.6  0.2]
 [ 4.6  3.2  1.4  0.2]
 [ 5.3  3.7  1.5  0.2]
 [ 5.   3.3  1.4  0.2]
 [ 7.   3.2  4.7  1.4]
 [ 6.4  3.2  4.5  1.5]
 [ 6.9  3.1  4.9  1.5]
 [ 5.5  2.3  4.   1.3]
 [ 6.5  2.8  4.6  1.5]
 [ 5.7  2.8  4.5  1.3]
 [ 6.3  3.3  4.7  1.6]
 [ 4.9  2.4  3.3  1. ]
 [ 6.6  2.9  4.6  1.3]
 [ 5.2  2.7  3.9  1.4]
 [ 5.   2.   3.5  1. ]
 [ 5.9  3.   4.2  1.5]
 [ 6.   2.2  4.   1. ]
 [ 6.1  2.9  4.7  1.4]
 [ 5.6  2.9  3.6  1.3]
 [ 6.7  3.1  4.4  1.4]
 [ 5.6  3.   4.5  1.5]
 [ 5.8  2.7  4.1  1. ]
 [ 6.2  2.2  4.5  1.5]
 [ 5.6  2.5  3.9  1.1]
 [ 5.9  3.2  4.8  1.8]
 [ 6.1  2.8  4.   1.3]
 [ 6.3  2.5  4.9  1.5]
 [ 6.1  2.8  4.7  1.2]
 [ 6.4  2.9  4.3  1.3]
 [ 6.6  3.   4.4  1.4]
 [ 6.8  2.8  4.8  1.4]
 [ 6.7  3.   5.   1.7]
 [ 6.   2.9  4.5  1.5]
 [ 5.7  2.6  3.5  1. ]
 [ 5.5  2.4  3.8  1.1]
 [ 5.5  2.4  3.7  1. ]
 [ 5.8  2.7  3.9  1.2]
 [ 6.   2.7  5.1  1.6]
 [ 5.4  3.   4.5  1.5]
 [ 6.   3.4  4.5  1.6]
 [ 6.7  3.1  4.7  1.5]
 [ 6.3  2.3  4.4  1.3]
 [ 5.6  3.   4.1  1.3]
 [ 5.5  2.5  4.   1.3]
 [ 5.5  2.6  4.4  1.2]
 [ 6.1  3.   4.6  1.4]
 [ 5.8  2.6  4.   1.2]
 [ 5.   2.3  3.3  1. ]
 [ 5.6  2.7  4.2  1.3]
 [ 5.7  3.   4.2  1.2]
 [ 5.7  2.9  4.2  1.3]
 [ 6.2  2.9  4.3  1.3]
 [ 5.1  2.5  3.   1.1]
 [ 5.7  2.8  4.1  1.3]
 [ 6.3  3.3  6.   2.5]
 [ 5.8  2.7  5.1  1.9]
 [ 7.1  3.   5.9  2.1]
 [ 6.3  2.9  5.6  1.8]
 [ 6.5  3.   5.8  2.2]
 [ 7.6  3.   6.6  2.1]
 [ 4.9  2.5  4.5  1.7]
 [ 7.3  2.9  6.3  1.8]
 [ 6.7  2.5  5.8  1.8]
 [ 7.2  3.6  6.1  2.5]
 [ 6.5  3.2  5.1  2. ]
 [ 6.4  2.7  5.3  1.9]
 [ 6.8  3.   5.5  2.1]
 [ 5.7  2.5  5.   2. ]
 [ 5.8  2.8  5.1  2.4]
 [ 6.4  3.2  5.3  2.3]
 [ 6.5  3.   5.5  1.8]
 [ 7.7  3.8  6.7  2.2]
 [ 7.7  2.6  6.9  2.3]
 [ 6.   2.2  5.   1.5]
 [ 6.9  3.2  5.7  2.3]
 [ 5.6  2.8  4.9  2. ]
 [ 7.7  2.8  6.7  2. ]
 [ 6.3  2.7  4.9  1.8]
 [ 6.7  3.3  5.7  2.1]
 [ 7.2  3.2  6.   1.8]
 [ 6.2  2.8  4.8  1.8]
 [ 6.1  3.   4.9  1.8]
 [ 6.4  2.8  5.6  2.1]
 [ 7.2  3.   5.8  1.6]
 [ 7.4  2.8  6.1  1.9]
 [ 7.9  3.8  6.4  2. ]
 [ 6.4  2.8  5.6  2.2]
 [ 6.3  2.8  5.1  1.5]
 [ 6.1  2.6  5.6  1.4]
 [ 7.7  3.   6.1  2.3]
 [ 6.3  3.4  5.6  2.4]
 [ 6.4  3.1  5.5  1.8]
 [ 6.   3.   4.8  1.8]
 [ 6.9  3.1  5.4  2.1]
 [ 6.7  3.1  5.6  2.4]
 [ 6.9  3.1  5.1  2.3]
 [ 5.8  2.7  5.1  1.9]
 [ 6.8  3.2  5.9  2.3]
 [ 6.7  3.3  5.7  2.5]
 [ 6.7  3.   5.2  2.3]
 [ 6.3  2.5  5.   1.9]
 [ 6.5  3.   5.2  2. ]
 [ 6.2  3.4  5.4  2.3]
 [ 5.9  3.   5.1  1.8]]

/iris_/block1_items
[b'Unnamed: 0' b'species_id']

/iris_/block1_values
[[  0   1]
 [  1   1]
 [  2   1]
 [  3   1]
 [  4   1]
 [  5   1]
 [  6   1]
 [  7   1]
 [  8   1]
 [  9   1]
 [ 10   1]
 [ 11   1]
 [ 12   1]
 [ 13   1]
 [ 14   1]
 [ 15   1]
 [ 16   1]
 [ 17   1]
 [ 18   1]
 [ 19   1]
 [ 20   1]
 [ 21   1]
 [ 22   1]
 [ 23   1]
 [ 24   1]
 [ 25   1]
 [ 26   1]
 [ 27   1]
 [ 28   1]
 [ 29   1]
 [ 30   1]
 [ 31   1]
 [ 32   1]
 [ 33   1]
 [ 34   1]
 [ 35   1]
 [ 36   1]
 [ 37   1]
 [ 38   1]
 [ 39   1]
 [ 40   1]
 [ 41   1]
 [ 42   1]
 [ 43   1]
 [ 44   1]
 [ 45   1]
 [ 46   1]
 [ 47   1]
 [ 48   1]
 [ 49   1]
 [ 50   2]
 [ 51   2]
 [ 52   2]
 [ 53   2]
 [ 54   2]
 [ 55   2]
 [ 56   2]
 [ 57   2]
 [ 58   2]
 [ 59   2]
 [ 60   2]
 [ 61   2]
 [ 62   2]
 [ 63   2]
 [ 64   2]
 [ 65   2]
 [ 66   2]
 [ 67   2]
 [ 68   2]
 [ 69   2]
 [ 70   2]
 [ 71   2]
 [ 72   2]
 [ 73   2]
 [ 74   2]
 [ 75   2]
 [ 76   2]
 [ 77   2]
 [ 78   2]
 [ 79   2]
 [ 80   2]
 [ 81   2]
 [ 82   2]
 [ 83   2]
 [ 84   2]
 [ 85   2]
 [ 86   2]
 [ 87   2]
 [ 88   2]
 [ 89   2]
 [ 90   2]
 [ 91   2]
 [ 92   2]
 [ 93   2]
 [ 94   2]
 [ 95   2]
 [ 96   2]
 [ 97   2]
 [ 98   2]
 [ 99   2]
 [100   3]
 [101   3]
 [102   3]
 [103   3]
 [104   3]
 [105   3]
 [106   3]
 [107   3]
 [108   3]
 [109   3]
 [110   3]
 [111   3]
 [112   3]
 [113   3]
 [114   3]
 [115   3]
 [116   3]
 [117   3]
 [118   3]
 [119   3]
 [120   3]
 [121   3]
 [122   3]
 [123   3]
 [124   3]
 [125   3]
 [126   3]
 [127   3]
 [128   3]
 [129   3]
 [130   3]
 [131   3]
 [132   3]
 [133   3]
 [134   3]
 [135   3]
 [136   3]
 [137   3]
 [138   3]
 [139   3]
 [140   3]
 [141   3]
 [142   3]
 [143   3]
 [144   3]
 [145   3]
 [146   3]
 [147   3]
 [148   3]
 [149   3]]

/iris_/block2_items
[b'species']

/iris_/block2_values
[ array([128,   4, 149, 213,   1,   0,   0,   0,   0,   0,   0, 140,  21,
       110, 117, 109, 112, 121,  46,  99, 111, 114, 101,  46, 109, 117,
       108, 116, 105,  97, 114, 114,  97, 121, 148, 140,  12,  95, 114,
       101,  99, 111, 110, 115, 116, 114, 117,  99, 116, 148, 147, 148,
       140,   5, 110, 117, 109, 112, 121, 148, 140,   7, 110, 100,  97,
       114, 114,  97, 121, 148, 147, 148,  75,   0, 133, 148,  67,   1,
        98, 148, 135, 148,  82, 148,  40,  75,   1,  75, 150,  75,   1,
       134, 148, 104,   3, 140,   5, 100, 116, 121, 112, 101, 148, 147,
       148, 140,   2,  79,  56, 148,  75,   0,  75,   1, 135, 148,  82,
       148,  40,  75,   3, 140,   1, 124, 148,  78,  78,  78,  74, 255,
       255, 255, 255,  74, 255, 255, 255, 255,  75,  63, 116, 148,  98,
       137,  93, 148,  40, 140,   6, 115, 101, 116, 111, 115,  97, 148,
       104,  19, 104,  19, 104,  19, 104,  19, 104,  19, 104,  19, 104,
        19, 104,  19, 104,  19, 104,  19, 104,  19, 104,  19, 104,  19,
       104,  19, 104,  19, 104,  19, 104,  19, 104,  19, 104,  19, 104,
        19, 104,  19, 104,  19, 104,  19, 104,  19, 104,  19, 104,  19,
       104,  19, 104,  19, 104,  19, 104,  19, 104,  19, 104,  19, 104,
        19, 104,  19, 104,  19, 104,  19, 104,  19, 104,  19, 104,  19,
       104,  19, 104,  19, 104,  19, 104,  19, 104,  19, 104,  19, 104,
        19, 104,  19, 104,  19, 104,  19, 140,  10, 118, 101, 114, 115,
       105,  99, 111, 108, 111, 114, 148, 104,  20, 104,  20, 104,  20,
       104,  20, 104,  20, 104,  20, 104,  20, 104,  20, 104,  20, 104,
        20, 104,  20, 104,  20, 104,  20, 104,  20, 104,  20, 104,  20,
       104,  20, 104,  20, 104,  20, 104,  20, 104,  20, 104,  20, 104,
        20, 104,  20, 104,  20, 104,  20, 104,  20, 104,  20, 104,  20,
       104,  20, 104,  20, 104,  20, 104,  20, 104,  20, 104,  20, 104,
        20, 104,  20, 104,  20, 104,  20, 104,  20, 104,  20, 104,  20,
       104,  20, 104,  20, 104,  20, 104,  20, 104,  20, 104,  20, 104,
        20, 140,   9, 118, 105, 114, 103, 105, 110, 105,  99,  97, 148,
       104,  21, 104,  21, 104,  21, 104,  21, 104,  21, 104,  21, 104,
        21, 104,  21, 104,  21, 104,  21, 104,  21, 104,  21, 104,  21,
       104,  21, 104,  21, 104,  21, 104,  21, 104,  21, 104,  21, 104,
        21, 104,  21, 104,  21, 104,  21, 104,  21, 104,  21, 104,  21,
       104,  21, 104,  21, 104,  21, 104,  21, 104,  21, 104,  21, 104,
        21, 104,  21, 104,  21, 104,  21, 104,  21, 104,  21, 104,  21,
       104,  21, 104,  21, 104,  21, 104,  21, 104,  21, 104,  21, 104,
        21, 104,  21, 104,  21, 104,  21, 101, 116, 148,  98,  46], dtype=uint8)]


In [234]:
newf.close()

In [235]:
# read an hdf5 file to pandas dataframe
df_hdf5 = pd.read_hdf('iris.hdf5')
df_hdf5.head()


Out[235]:
Unnamed: 0 sepal_length sepal_width petal_length petal_width species species_id
0 0 5.1 3.5 1.4 0.2 setosa 1
1 1 4.9 3.0 1.4 0.2 setosa 1
2 2 4.7 3.2 1.3 0.2 setosa 1
3 3 4.6 3.1 1.5 0.2 setosa 1
4 4 5.0 3.6 1.4 0.2 setosa 1

In [245]:
## append data to the previous data on the hdf5
df.to_hdf('iris.hdf5', 'data', append=True, format='table')
df.to_hdf('iris.hdf5', 'data', append=True, format='table') # since the format is table you can append stak data

In [248]:
# to retrive the data you have to use the key (here data or iris_)
df_hdf5 = pd.read_hdf('iris.hdf5',key='data')
print(len(df_hdf5))
df_hdf5


300
Out[248]:
Unnamed: 0 sepal_length sepal_width petal_length petal_width species species_id
0 0 5.1 3.5 1.4 0.2 setosa 1
1 1 4.9 3.0 1.4 0.2 setosa 1
2 2 4.7 3.2 1.3 0.2 setosa 1
3 3 4.6 3.1 1.5 0.2 setosa 1
4 4 5.0 3.6 1.4 0.2 setosa 1
5 5 5.4 3.9 1.7 0.4 setosa 1
6 6 4.6 3.4 1.4 0.3 setosa 1
7 7 5.0 3.4 1.5 0.2 setosa 1
8 8 4.4 2.9 1.4 0.2 setosa 1
9 9 4.9 3.1 1.5 0.1 setosa 1
10 10 5.4 3.7 1.5 0.2 setosa 1
11 11 4.8 3.4 1.6 0.2 setosa 1
12 12 4.8 3.0 1.4 0.1 setosa 1
13 13 4.3 3.0 1.1 0.1 setosa 1
14 14 5.8 4.0 1.2 0.2 setosa 1
15 15 5.7 4.4 1.5 0.4 setosa 1
16 16 5.4 3.9 1.3 0.4 setosa 1
17 17 5.1 3.5 1.4 0.3 setosa 1
18 18 5.7 3.8 1.7 0.3 setosa 1
19 19 5.1 3.8 1.5 0.3 setosa 1
20 20 5.4 3.4 1.7 0.2 setosa 1
21 21 5.1 3.7 1.5 0.4 setosa 1
22 22 4.6 3.6 1.0 0.2 setosa 1
23 23 5.1 3.3 1.7 0.5 setosa 1
24 24 4.8 3.4 1.9 0.2 setosa 1
25 25 5.0 3.0 1.6 0.2 setosa 1
26 26 5.0 3.4 1.6 0.4 setosa 1
27 27 5.2 3.5 1.5 0.2 setosa 1
28 28 5.2 3.4 1.4 0.2 setosa 1
29 29 4.7 3.2 1.6 0.2 setosa 1
... ... ... ... ... ... ... ...
120 120 6.9 3.2 5.7 2.3 virginica 3
121 121 5.6 2.8 4.9 2.0 virginica 3
122 122 7.7 2.8 6.7 2.0 virginica 3
123 123 6.3 2.7 4.9 1.8 virginica 3
124 124 6.7 3.3 5.7 2.1 virginica 3
125 125 7.2 3.2 6.0 1.8 virginica 3
126 126 6.2 2.8 4.8 1.8 virginica 3
127 127 6.1 3.0 4.9 1.8 virginica 3
128 128 6.4 2.8 5.6 2.1 virginica 3
129 129 7.2 3.0 5.8 1.6 virginica 3
130 130 7.4 2.8 6.1 1.9 virginica 3
131 131 7.9 3.8 6.4 2.0 virginica 3
132 132 6.4 2.8 5.6 2.2 virginica 3
133 133 6.3 2.8 5.1 1.5 virginica 3
134 134 6.1 2.6 5.6 1.4 virginica 3
135 135 7.7 3.0 6.1 2.3 virginica 3
136 136 6.3 3.4 5.6 2.4 virginica 3
137 137 6.4 3.1 5.5 1.8 virginica 3
138 138 6.0 3.0 4.8 1.8 virginica 3
139 139 6.9 3.1 5.4 2.1 virginica 3
140 140 6.7 3.1 5.6 2.4 virginica 3
141 141 6.9 3.1 5.1 2.3 virginica 3
142 142 5.8 2.7 5.1 1.9 virginica 3
143 143 6.8 3.2 5.9 2.3 virginica 3
144 144 6.7 3.3 5.7 2.5 virginica 3
145 145 6.7 3.0 5.2 2.3 virginica 3
146 146 6.3 2.5 5.0 1.9 virginica 3
147 147 6.5 3.0 5.2 2.0 virginica 3
148 148 6.2 3.4 5.4 2.3 virginica 3
149 149 5.9 3.0 5.1 1.8 virginica 3

300 rows × 7 columns

HDF5 also support (check first link):

  • parallelism
  • chunked storage
  • compression
  • dimension scale

In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]: