def _addData(self, data): data = npy.array(data, npy.Float) data = npy.repeat(data, npy.logical_and(npy.less_equal(data, self.max), npy.greater_equal(data, self.min))) data = npy.floor((data - self.min)/self.bin_width).astype(npy.Int) nbins = self.array.shape[0] histo = npy.add.reduce(npy.equal(npy.arange(nbins)[:,npy.NewAxis], data), -1) histo[-1] = histo[-1] + npy.add.reduce(npy.equal(nbins, data)) self.array[:, 1] = self.array[:, 1] + histo
def _setup(self, data, nbins, range): if range is None: self.min = npy.minimum.reduce(data) self.max = npy.maximum.reduce(data) else: self.min, self.max = range self.min = self.min+0. self.max = self.max+0. self.bin_width = (self.max-self.min)/nbins self.array = npy.zeros((nbins, 2), npy.Float) self.array[:, 0] = self.min + self.bin_width*(npy.arange(nbins)+0.5)