Python astropy.table.Column() Examples
The following are 30
code examples of astropy.table.Column().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
astropy.table
, or try the search function
.
Example #1
Source File: test_info.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_data_info_subclass(): class Column(table.Column): """ Confusingly named Column on purpose, but that is legal. """ pass for data in ([], [1, 2]): c = Column(data, dtype='int64') cinfo = c.info(out=None) assert cinfo == OrderedDict([('dtype', 'int64'), ('shape', ''), ('unit', ''), ('format', ''), ('description', ''), ('class', 'Column'), ('n_bad', 0), ('length', len(data))])
Example #2
Source File: test_pickle.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_pickle_masked_table(protocol): a = Column(data=[1, 2], name='a', format='%05d', description='col a', unit='cm', meta={'a': 1}) b = Column(data=[3.0, 4.0], name='b', format='%05d', description='col b', unit='cm', meta={'b': 1}) t = Table([a, b], meta={'a': 1}, masked=True) t['a'].mask[1] = True t['a'].fill_value = -99 ts = pickle.dumps(t) tp = pickle.loads(ts) for colname in ('a', 'b'): for attr in ('_data', 'mask', 'fill_value'): assert np.all(getattr(tp[colname], attr) == getattr(tp[colname], attr)) assert tp['a'].attrs_equal(t['a']) assert tp['b'].attrs_equal(t['b']) assert tp.meta == t.meta
Example #3
Source File: test_sky_coord.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_table_to_coord(): """ Checks "end-to-end" use of `Table` with `SkyCoord` - the `Quantity` initializer is the intermediary that translate the table columns into something coordinates understands. (Regression test for #1762 ) """ from astropy.table import Table, Column t = Table() t.add_column(Column(data=[1, 2, 3], name='ra', unit=u.deg)) t.add_column(Column(data=[4, 5, 6], name='dec', unit=u.deg)) c = SkyCoord(t['ra'], t['dec']) assert allclose(c.ra.to(u.deg), [1, 2, 3] * u.deg) assert allclose(c.dec.to(u.deg), [4, 5, 6] * u.deg)
Example #4
Source File: test_masked.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_filled_column(self): f = self.a.filled() assert np.all(f == [10, 2, 3]) assert isinstance(f, Column) assert not isinstance(f, MaskedColumn) # Confirm copy, not ref assert f.meta['a'] == 1 f.meta['a'] = 2 f[1] = 100 assert self.a[1] == 2 assert self.a.meta['a'] == 1 # Fill with arg fill_value not column fill_value f = self.a.filled(20) assert np.all(f == [20, 2, 3]) f = self.b.filled() assert np.all(f == [10.0, 5.0, 6.0]) assert isinstance(f, Column) f = self.c.filled() assert np.all(f == ['1', '8', '9']) assert isinstance(f, Column)
Example #5
Source File: VirtualObservatoryCatalog.py From threeML with BSD 3-Clause "New" or "Revised" License | 6 votes |
def query(self, query): """ query the entire VO table for the given logical argument. Queries are in the form of pandas queries: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.query.html To obtain a preview of the availble columns, try catalog.variables :param query: pandas style query string :return: """ assert type(query) == str, "query must be a string" query_results = self._vo_dataframe.query(query) table = astro_table.Table.from_pandas(query_results) name_column = astro_table.Column(name="name", data=query_results.index) table.add_column(name_column, index=0) out = self.apply_format(table) self._last_query_results = query_results return out
Example #6
Source File: conftest.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
def table_types(request): class TableTypes: def __init__(self, request): if request.param == 'unmasked': self.Table = table.Table self.Column = table.Column elif request.param == 'masked': self.Table = MaskedTable self.Column = table.MaskedColumn elif request.param == 'subclass': self.Table = MyTable self.Column = MyColumn return TableTypes(request) # Fixture to run all the Column tests for both an unmasked (ndarray) # and masked (MaskedArray) column.
Example #7
Source File: catalog_generator.py From mirage with BSD 3-Clause "New" or "Revised" License | 6 votes |
def create_basic_table(ra_values, dec_values, magnitudes, location_units, minimum_index=1): """Create astropy table containing the basic catalog info NOTE THAT THIS IS OUTSIDE CLASSES """ basic_table = Table() # Add index, filename, RA, Dec or x, y columns index_col = Column(np.arange(minimum_index, minimum_index + len(ra_values)), name='index') ra_col = Column(ra_values, name='x_or_RA') dec_col = Column(dec_values, name='y_or_Dec') basic_table.add_columns([index_col, ra_col, dec_col]) # Add magnitude columns for key in magnitudes: mag_values = magnitudes[key][1] mag_sys = magnitudes[key][0] mag_column = Column(mag_values, name=key) basic_table.add_column(mag_column) # Add magnitude system and position units as metadata basic_table.meta['comments'] = [location_units, mag_sys] return basic_table
Example #8
Source File: test_masked.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_add_masked_row_to_non_masked_table_iterable(self): t = Table(masked=False) t['a'] = [1] t['b'] = [4] t['c'] = Time([1], format='cxcsec') tm = Time(2, format='cxcsec') assert not t.masked t.add_row([2, 5, tm]) assert not t.masked t.add_row([3, 6, tm], mask=[0, 1, 1]) assert not t.masked assert type(t['a']) is Column assert type(t['b']) is MaskedColumn assert type(t['c']) is Time assert np.all(t['a'] == [1, 2, 3]) assert np.all(t['b'].data == [4, 5, 6]) assert np.all(t['b'].mask == [False, False, True]) assert np.all(t['c'][:2] == Time([1, 2], format='cxcsec')) assert np.all(t['c'].mask == [False, False, True])
Example #9
Source File: test_masked.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_setting_from_masked_column(): """Test issue in #2997""" mask_b = np.array([True, True, False, False]) for select in (mask_b, slice(0, 2)): t = Table(masked=True) t['a'] = Column([1, 2, 3, 4]) t['b'] = MaskedColumn([11, 22, 33, 44], mask=mask_b) t['c'] = MaskedColumn([111, 222, 333, 444], mask=[True, False, True, False]) t['b'][select] = t['c'][select] assert t['b'][1] == t[1]['b'] assert t['b'][0] is np.ma.masked # Original state since t['c'][0] is masked assert t['b'][1] == 222 # New from t['c'] since t['c'][1] is unmasked assert t['b'][2] == 33 assert t['b'][3] == 44 assert np.all(t['b'].mask == t.mask['b']) # Avoid t.mask in general, this is for testing mask_before_add = t.mask.copy() t['d'] = np.arange(len(t)) assert np.all(t.mask['b'] == mask_before_add['b'])
Example #10
Source File: catalog_generator.py From mirage with BSD 3-Clause "New" or "Revised" License | 6 votes |
def create_table(self): """Create an astropy table containing the catalog """ tab = create_basic_table(self._ra, self._dec, self.magnitudes, self.location_units) # Add morphology columns for key in self._morphology: values = self._morphology[key] col = Column(values, name=key) tab.add_column(col, index=3) # Add magnitude system and position units as metadata tab.meta['comments'].append("radius_{}".format(self.radius_units)) # Make sure there are at least 4 comment lines at the top self.table = pad_table_comments(tab)
Example #11
Source File: flux_cal.py From mirage with BSD 3-Clause "New" or "Revised" License | 6 votes |
def add_detector_to_zeropoints(detector, zeropoint_table): """Manually add detector dependence to the zeropoint table for NIRCam and NIRISS simualtions. This is being done as a placeholder for the future, where we expect zeropoints to be detector-dependent. Parameters ---------- detector : str Name of detector to add to the table zeropoint_table : astropy.table.Table Table of filter zeropoint information Returns ------- base_table : astropy.table.Table Copy of ``zeropoint_table`` with Detector column added """ # Add "Detector" to the list of column names base_table = copy.deepcopy(zeropoint_table) num_entries = len(zeropoint_table) det_column = Column(np.repeat(detector, num_entries), name="Detector") base_table.add_column(det_column, index=0) return base_table
Example #12
Source File: test_table.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_override_name(self, table_types): self._setup(table_types) t = table_types.Table() # Check that we can override the name of the input column in the Table t.add_column(self.a, name='b') t.add_column(self.b, name='a') assert t.columns.keys() == ['b', 'a'] # Check that we did not change the name of the input column assert self.a.info.name == 'a' assert self.b.info.name == 'b' # Now test with an input column from another table t2 = table_types.Table() t2.add_column(t['a'], name='c') assert t2.columns.keys() == ['c'] # Check that we did not change the name of the input column assert t.columns.keys() == ['b', 'a'] # Check that we can give a name if none was present col = table_types.Column([1, 2, 3]) t.add_column(col, name='c') assert t.columns.keys() == ['b', 'a', 'c']
Example #13
Source File: conftest.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def mixin_cols(request): """ Fixture to return a set of columns for mixin testing which includes an index column 'i', two string cols 'a', 'b' (for joins etc), and one of the available mixin column types. """ cols = OrderedDict() mixin_cols = deepcopy(MIXIN_COLS) cols['i'] = table.Column([0, 1, 2, 3], name='i') cols['a'] = table.Column(['a', 'b', 'b', 'c'], name='a') cols['b'] = table.Column(['b', 'c', 'a', 'd'], name='b') cols['m'] = mixin_cols[request.param] return cols
Example #14
Source File: test_table.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_simple(self, table_types): cols = [table_types.Column(name='a', data=[1, 2, 3]), table_types.Column(name='b', data=[4, 5, 6], dtype=np.float32)] t = table_types.Table(cols) assert np.all(t['a'].data == np.array([1, 2, 3])) assert np.all(t['b'].data == np.array([4, 5, 6], dtype=np.float32)) assert type(t['b'][1]) is np.float32
Example #15
Source File: test_table.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_itercols(self, table_types): names = ['a', 'b', 'c'] t = table_types.Table([[1], [2], [3]], names=names) for name, col in zip(names, t.itercols()): assert name == col.name assert isinstance(col, table_types.Column)
Example #16
Source File: test_table.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_name_none(self, table_types): """Column with name=None can init a table whether or not names are supplied""" c = table_types.Column(data=[1, 2], name='c') d = table_types.Column(data=[3, 4]) t = table_types.Table([c, d], names=(None, 'd')) assert t.colnames == ['c', 'd'] t = table_types.Table([c, d]) assert t.colnames == ['c', 'col1']
Example #17
Source File: test_table.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_2(self, table_types): t = table_types.Table() t.add_column(table_types.Column(name='a', data=[1, 2, 3])) assert np.all(t['a'] == np.array([1, 2, 3])) with pytest.raises(KeyError): t['b'] # column does not exist
Example #18
Source File: test_table.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_size_mismatch(self, table_types): cols = [table_types.Column(name='a', data=[1, 2, 3]), table_types.Column(name='b', data=[4, 5, 6, 7])] with pytest.raises(ValueError): table_types.Table(cols)
Example #19
Source File: test_operations.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_get_out_class(): c = table.Column([1, 2]) mc = table.MaskedColumn([1, 2]) q = [1, 2] * u.m assert _get_out_class([c, mc]) is mc.__class__ assert _get_out_class([mc, c]) is mc.__class__ assert _get_out_class([c, c]) is c.__class__ assert _get_out_class([c]) is c.__class__ with pytest.raises(ValueError): _get_out_class([c, q]) with pytest.raises(ValueError): _get_out_class([q, c])
Example #20
Source File: test_pickle.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_pickle_table(protocol): a = Column(data=[1, 2], name='a', format='%05d', description='col a', unit='cm', meta={'a': 1}) b = Column(data=[3.0, 4.0], name='b', format='%05d', description='col b', unit='cm', meta={'b': 1}) for table_class in Table, QTable: t = table_class([a, b], meta={'a': 1, 'b': Quantity(10, unit='s')}) t['c'] = Quantity([1, 2], unit='m') t['d'] = Time(['2001-01-02T12:34:56', '2001-02-03T00:01:02']) t['e'] = SkyCoord([125.0, 180.0]*deg, [-45.0, 36.5]*deg) ts = pickle.dumps(t) tp = pickle.loads(ts) assert tp.__class__ is table_class assert np.all(tp['a'] == t['a']) assert np.all(tp['b'] == t['b']) # test mixin columns assert np.all(tp['c'] == t['c']) assert np.all(tp['d'] == t['d']) assert np.all(tp['e'].ra == t['e'].ra) assert np.all(tp['e'].dec == t['e'].dec) assert type(tp['c']) is type(t['c']) # nopep8 assert type(tp['d']) is type(t['d']) # nopep8 assert type(tp['e']) is type(t['e']) # nopep8 assert tp.meta == t.meta assert type(tp) is type(t) assert isinstance(tp['c'], Quantity if (table_class is QTable) else Column)
Example #21
Source File: test_init_table.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_init(self): """Test initialisation with lists, tuples, dicts of arrays rather than Columns [regression test for #2647]""" x1 = np.arange(10.) x2 = np.arange(5.) x3 = np.arange(7.) col_list = [('x1', x1), ('x2', x2), ('x3', x3)] tc_list = TableColumns(col_list) for col in col_list: assert col[0] in tc_list assert tc_list[col[0]] is col[1] col_tuple = (('x1', x1), ('x2', x2), ('x3', x3)) tc_tuple = TableColumns(col_tuple) for col in col_tuple: assert col[0] in tc_tuple assert tc_tuple[col[0]] is col[1] col_dict = dict([('x1', x1), ('x2', x2), ('x3', x3)]) tc_dict = TableColumns(col_dict) for col in tc_dict.keys(): assert col in tc_dict assert tc_dict[col] is col_dict[col] columns = [Column(col[1], name=col[0]) for col in col_list] tc = TableColumns(columns) for col in columns: assert col.name in tc assert tc[col.name] is col # pytest.mark.usefixtures('table_type')
Example #22
Source File: test_pickle.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_pickle_column(protocol): c = Column(data=[1, 2], name='a', format='%05d', description='col a', unit='cm', meta={'a': 1}) cs = pickle.dumps(c) cp = pickle.loads(cs) assert np.all(cp == c) assert cp.attrs_equal(c) assert cp._parent_table is None assert repr(c) == repr(cp)
Example #23
Source File: test_pprint.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_pprint_nameless_col(): """Regression test for #2213, making sure a nameless column can be printed using None as the name. """ col = table.Column([1., 2.]) assert str(col).startswith('None')
Example #24
Source File: test_init_table.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _setup(self, table_type): self.data = dict([('a', Column([1, 3], name='x')), ('b', [2, 4]), ('c', np.array([3, 5], dtype='i8'))])
Example #25
Source File: conftest.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def table_data(request): class TableData: def __init__(self, request): self.Table = MaskedTable if request.param else table.Table self.Column = table.MaskedColumn if request.param else table.Column self.COLS = [ self.Column(name='a', data=[1, 2, 3], description='da', format='%i', meta={'ma': 1}, unit='ua'), self.Column(name='b', data=[4, 5, 6], description='db', format='%d', meta={'mb': 1}, unit='ub'), self.Column(name='c', data=[7, 8, 9], description='dc', format='%f', meta={'mc': 1}, unit='ub')] self.DATA = self.Table(self.COLS) return TableData(request)
Example #26
Source File: test_init_table.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def setup_method(self, table_type): self._setup(table_type) self.data = [(np.int32(1), np.int32(3)), Column(name='col1', data=[2, 4], dtype=np.int32), np.array([3, 5], dtype=np.int32)]
Example #27
Source File: test_init_table.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _setup(self, table_type): self.data = [Column([1, 3], name='x', dtype=np.int32), np.array([2, 4], dtype=np.int32), np.array([3, 5], dtype='i8')]
Example #28
Source File: test_init_table.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _setup(self, table_type): self.data = OrderedDict([('a', Column(name='x', data=[1, 3])), ('b', [2, 4]), ('c', np.array([3, 5], dtype='i8'))])
Example #29
Source File: test_init_table.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _setup(self, table_type): self.data = UserDict([('a', Column([1, 3], name='x')), ('b', [2, 4]), ('c', np.array([3, 5], dtype='i8'))]) assert isinstance(self.data, Mapping) assert not isinstance(self.data, dict)
Example #30
Source File: test_init_table.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_ndarray_ref(self, table_type): """Init with ndarray and copy=False and show that table uses reference to input ndarray""" self._setup(table_type) t = table_type(self.data, copy=False) t['x'][1] = 0 # Column-wise assignment t[0]['y'] = 0 # Row-wise assignment assert self.data['x'][1] == 0 assert self.data['y'][0] == 0 assert np.all(np.array(t) == self.data) assert all(t[name].name == name for name in t.colnames)