Here's code I use for basic 2d histogram
import numpy as np
def nint (x):
if x >= 0:
return int (x + 0.5)
else:
return int (x - 0.5)
class histogram2d (object):
def __init__ (self, min, max, delta, clip=True):
self.min = min
self.max = max
self.delta = delta
self.clip = clip
self.n_buckets = int ((max - min)/delta + 1)
self.buckets = np.zeros ((self.n_buckets, self.n_buckets), dtype=int)
def apply (self, x):
if x > self.max:
if self.clip:
return self.max
else:
raise RuntimeError
elif x < self.min:
if self.clip:
return self.min
else:
raise RuntimeError
else:
return x
def __iadd__ (self, z):
if hasattr (z, '__len__'):
for e in z:
self += e
return self
else:
x_index = nint ((self.apply (z.real) - self.min) / self.delta)
y_index = nint ((self.apply (z.imag) - self.min) / self.delta)
self.buckets[x_index, y_index] += 1
return self
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion