Я хотел бы создать двумерные гистограммы в python из больших наборов данных (более 100000 образцов), хранящихся в файле HDF5. Я придумал следующий код:
import sys
import h5py
import numpy as np
import matplotlib as mpl
import matplotlib.pylab
f = h5py.File(sys.argv[1], 'r')
A = f['A']
T = f['T']
at_hist, xedges, yedges = np.histogram2d(T, A, bins=500)
extent = [yedges[0], yedges[-1], xedges[0], xedges[-1]]
fig = mpl.pylab.figure()
at_plot = fig.add_subplot(111)
at_plot.imshow(at_hist, extent=extent, origin='lower', aspect='auto')
mpl.pylab.show()
f.close()
Выполнение занимает около 15 секунд (100000 точек данных). Однако корень CERN (используя собственную древовидную структуру данных вместо HDF5) может сделать это менее чем за 1 с. Ты хоть представляешь, как я могу ускорить код? Я также мог бы изменить структуру данных HDF5, если бы это было полезно.