Source code for deimos.utils

import numpy as np
import pandas as pd


[docs]def safelist(x): ''' Ensures passed object is of correct list-like format. Parameters ---------- x : any Object to be cast as list. Returns ------- list-like Input safely cast to list-like. ''' if not isinstance(x, (list, pd.core.series.Series, np.ndarray)): return [x].copy() return x.copy()
[docs]def check_length(lists): ''' Ensures collection of lists passed are of equal length. Parameters ---------- lists : list of list List of lists for length evaluation. Raises ------ ValueError If lists are not the same length. ''' it = iter(lists) length = len(next(it)) if not all(len(x) == length for x in it): raise ValueError('Per-dimension inputs must have same dimension.')
[docs]def detect_dims(features): ''' Detects non-intensity columns in the input. Parameters ---------- features : :obj:`~pandas.DataFrame` Input feature coordinates and intensities. Returns ------- list List of non-intensity features in the input. ''' dims = list(features.columns) dims.remove('intensity') return dims