Your sample is really too small. HDF5 has a generous amount of overhead with really small sizes (even 300k entries is on the smaller side). Floats are really more efficiently presented in binary (that as a text representation).
In extension, HDF5 is row-based. You get MUCH productivity by having tables that are not too wide but are fairly long. Hence your example is not very effective in HDF5 at all, store it transposed in this case.