Again, numerous changes.
Mostly figure polishing and fixing. Crucial fix to "short" invariance analysis.
This commit is contained in:
@@ -48,6 +48,28 @@ def sort_files_by_rec(paths, sources=['BM04', 'BM93', 'DJN', 'GBC', 'FTN']):
|
||||
sorted_paths = [path for paths in sorted_paths.values() for path in paths]
|
||||
return sorted_paths
|
||||
|
||||
def get_histogram(data, edges=None, nbins=50, pad=0.1, shared=True):
|
||||
if edges is None:
|
||||
axis = None if shared else 0
|
||||
min_data, max_data = data.min(axis=axis), data.max(axis=axis)
|
||||
pad = pad * (max_data - min_data)
|
||||
if shared or data.ndim == 1:
|
||||
edges = np.linspace(min_data - pad, max_data + pad, nbins + 1)
|
||||
else:
|
||||
edges = np.zeros((nbins + 1, data.shape[1]))
|
||||
for i, mini, maxi, padi in enumerate(zip(min_data, max_data, pad)):
|
||||
edges[:, i] = np.linspace(mini - padi, maxi + padi, nbins + 1)
|
||||
|
||||
centers = edges[:-1] + np.diff(edges, axis=0) / 2
|
||||
if data.ndim == 1:
|
||||
hists, _ = np.histogram(data, bins=edges, density=True)
|
||||
else:
|
||||
hists = np.zeros((nbins, data.shape[1]))
|
||||
for i in range(data.shape[1]):
|
||||
bins = edges if shared else edges[:, i]
|
||||
hists[:, i], _ = np.histogram(data[:, i], bins=bins, density=True)
|
||||
return hists, centers
|
||||
|
||||
def get_kde(data, sigma, axis=None, n=1000, pad=10):
|
||||
if axis is None:
|
||||
axis = np.linspace(data.min() - pad * sigma, data.max() + pad * sigma, n)
|
||||
|
||||
Reference in New Issue
Block a user