def __init__(self, data, names=None):
if names is None:
self.names = range(data.shape[1])
else:
assert (len(names) == self.NVAR), 'Passed-in names length must equal number of data columns'
self.names = names
self.NROW = data.shape[0]
self.NVAR = data.shape[1]
self.bins = [len(np.unique(data[:,n])) for n in range(self.NVAR)]
hist,_ = np.histogramdd(data, bins=self.bins)
self.counts = hist
self.joint = (hist / hist.sum()) + 1e-3
## COMPUTE MARGINAL FOR EACH VARIABLE ##
#_range = range(self.NVAR)
#for i,rv in enumerate(self.names):
# _axis = copy(_range)
# _axis.remove(i)
# self.marginal[rv] = np.sum(self.joint,axis=_axis)
#self.marginal = dict([(rv, np.sum(self.joint,axis=i)) for i,rv in enumerate(self.names)])
self.cache = {}
评论列表
文章目录