Эффективное создание двумерных гистограмм из больших наборов данных

Я хотел бы создать двумерные гистограммы в 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, если бы это было полезно.

8
задан AbuBakr 10 January 2012 в 15:18
поделиться