def ligolw_table_to_array(tab): # get mapping of LIGO_LW types to numpy numeric types; add string types from glue.ligolw.types import ToNumPyType type_map = ToNumPyType.copy() type_map[u"ilwd:char"] = "S40" type_map[u"lstring"] = "S32" # construct numpy dtype and row accessor name_type_pairs = tab.validcolumns.items() name_type_pairs.sort() dtype = np.dtype({"names": [n for n, _ in name_type_pairs], "formats": [type_map[t] for _, t in name_type_pairs]}) extract_in_order = attrgetter(*dtype.names) # populate array arr = np.empty(len(tab), dtype=dtype) for i, row in enumerate(tab): arr[i] = extract_in_order(row) return arr
def ligolw_table_to_array(tab): # get mapping of LIGO_LW types to numpy numeric types; add string types from glue.ligolw.types import ToNumPyType type_map = ToNumPyType.copy() type_map[u"ilwd:char"] = "S40" type_map[u"lstring"] = "S32" # construct numpy dtype and row accessor name_type_pairs = tab.validcolumns.items() name_type_pairs.sort() dtype = np.dtype({ "names": [n for n, _ in name_type_pairs], "formats": [type_map[t] for _, t in name_type_pairs]}) extract_in_order = attrgetter(*dtype.names) # populate array arr = np.empty(len(tab), dtype=dtype) for i, row in enumerate(tab): arr[i] = extract_in_order(row) return arr