Column

class astropy.table.Column[source] [edit on github]

Bases: astropy.table.column.BaseColumn

Define a data column for use in a Table object.

Parameters:
data : list, ndarray or None

Column data values

name : str

Column name and key for reference within Table

dtype : numpy.dtype compatible value

Data type for column

shape : tuple or ()

Dimensions of a single row element in the column data

length : int or 0

Number of row elements in column data

description : str or None

Full description of column

unit : str or None

Physical unit

format : str or None or function or callable

Format string for outputting column values. This can be an “old-style” (format % value) or “new-style” (str.format) format specification string or a function or any callable object that accepts a single value and returns a string.

meta : dict-like or None

Meta-data associated with the column

Examples

A Column can be created in two different ways:

  • Provide a data value but not shape or length (which are inferred from the data).

    Examples:

    col = Column(data=[1, 2], name='name')  # shape=(2,)
    col = Column(data=[[1, 2], [3, 4]], name='name')  # shape=(2, 2)
    col = Column(data=[1, 2], name='name', dtype=float)
    col = Column(data=np.array([1, 2]), name='name')
    col = Column(data=['hello', 'world'], name='name')
    

    The dtype argument can be any value which is an acceptable fixed-size data-type initializer for the numpy.dtype() method. See https://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html. Examples include:

    • Python non-string type (float, int, bool)
    • Numpy non-string type (e.g. np.float32, np.int64, np.bool_)
    • Numpy.dtype array-protocol type strings (e.g. ‘i4’, ‘f8’, ‘S15’)

    If no dtype value is provide then the type is inferred using np.array(data).

  • Provide length and optionally shape, but not data

    Examples:

    col = Column(name='name', length=5)
    col = Column(name='name', dtype=int, length=10, shape=(3,4))
    

    The default dtype is np.float64. The shape argument is the array shape of a single cell in the column.

Attributes Summary

name The name of this column.
quantity A view of this table column as a Quantity object with units given by the Column’s unit parameter.
unit The unit associated with this column.

Methods Summary

convert_unit_to(new_unit[, equivalencies]) Converts the values of the column in-place from the current unit to the given unit.
copy([order, data, copy_data]) Return a copy of the current instance.
insert(obj, values[, axis]) Insert values before the given indices in the column and return a new Column object.
more([max_lines, show_name, show_unit]) Interactively browse column with a paging interface.
pformat([max_lines, show_name, show_unit, …]) Return a list of formatted string representation of column values.
pprint([max_lines, show_name, show_unit, …]) Print a formatted string representation of column values.
to(unit[, equivalencies]) Converts this table column to a Quantity object with the requested units.

Attributes Documentation

name

The name of this column.

quantity

A view of this table column as a Quantity object with units given by the Column’s unit parameter.

unit

The unit associated with this column. May be a string or a astropy.units.UnitBase instance.

Setting the unit property does not change the values of the data. To perform a unit conversion, use convert_unit_to.

Methods Documentation

convert_unit_to(new_unit, equivalencies=[]) [edit on github]

Converts the values of the column in-place from the current unit to the given unit.

To change the unit associated with this column without actually changing the data values, simply set the unit property.

Parameters:
new_unit : str or astropy.units.UnitBase instance

The unit to convert to.

equivalencies : list of equivalence pairs, optional

A list of equivalence pairs to try if the unit are not directly convertible. See Equivalencies.

Raises:
astropy.units.UnitsError

If units are inconsistent

copy(order='C', data=None, copy_data=True) [edit on github]

Return a copy of the current instance.

If data is supplied then a view (reference) of data is used, and copy_data is ignored.

Parameters:
order : {‘C’, ‘F’, ‘A’, ‘K’}, optional

Controls the memory layout of the copy. ‘C’ means C-order, ‘F’ means F-order, ‘A’ means ‘F’ if a is Fortran contiguous, ‘C’ otherwise. ‘K’ means match the layout of a as closely as possible. (Note that this function and :func:numpy.copy are very similar, but have different default values for their order= arguments.) Default is ‘C’.

data : array, optional

If supplied then use a view of data instead of the instance data. This allows copying the instance attributes and meta.

copy_data : bool, optional

Make a copy of the internal numpy array instead of using a reference. Default is True.

Returns:
col : Column or MaskedColumn

Copy of the current column (same type as original)

insert(obj, values, axis=0)[source] [edit on github]

Insert values before the given indices in the column and return a new Column object.

Parameters:
obj : int, slice or sequence of ints

Object that defines the index or indices before which values is inserted.

values : array_like

Value(s) to insert. If the type of values is different from that of quantity, values is converted to the matching type. values should be shaped so that it can be broadcast appropriately

axis : int, optional

Axis along which to insert values. If axis is None then the column array is flattened before insertion. Default is 0, which will insert a row.

Returns:
out : Column

A copy of column with values and mask inserted. Note that the insertion does not occur in-place: a new column is returned.

more(max_lines=None, show_name=True, show_unit=False) [edit on github]

Interactively browse column with a paging interface.

Supported keys:

f, <space> : forward one page
b : back one page
r : refresh same page
n : next row
p : previous row
< : go to beginning
> : go to end
q : quit browsing
h : print this help
Parameters:
max_lines : int

Maximum number of lines in table output.

show_name : bool

Include a header row for column names. Default is True.

show_unit : bool

Include a header row for unit. Default is False.

pformat(max_lines=None, show_name=True, show_unit=False, show_dtype=False, html=False) [edit on github]

Return a list of formatted string representation of column values.

If no value of max_lines is supplied then the height of the screen terminal is used to set max_lines. If the terminal height cannot be determined then the default will be determined using the astropy.conf.max_lines configuration item. If a negative value of max_lines is supplied then there is no line limit applied.

Parameters:
max_lines : int

Maximum lines of output (header + data rows)

show_name : bool

Include column name. Default is True.

show_unit : bool

Include a header row for unit. Default is False.

show_dtype : bool

Include column dtype. Default is False.

html : bool

Format the output as an HTML table. Default is False.

Returns:
lines : list

List of lines with header and formatted column values

pprint(max_lines=None, show_name=True, show_unit=False, show_dtype=False) [edit on github]

Print a formatted string representation of column values.

If no value of max_lines is supplied then the height of the screen terminal is used to set max_lines. If the terminal height cannot be determined then the default will be determined using the astropy.conf.max_lines configuration item. If a negative value of max_lines is supplied then there is no line limit applied.

Parameters:
max_lines : int

Maximum number of values in output

show_name : bool

Include column name. Default is True.

show_unit : bool

Include a header row for unit. Default is False.

show_dtype : bool

Include column dtype. Default is True.

to(unit, equivalencies=[], **kwargs) [edit on github]

Converts this table column to a Quantity object with the requested units.

Parameters:
unit : Unit or str

The unit to convert to (i.e., a valid argument to the astropy.units.Quantity.to() method).

equivalencies : list of equivalence pairs, optional

Equivalencies to use for this conversion. See astropy.units.Quantity.to() for more details.

Returns:
quantity : Quantity

A quantity object with the contents of this column in the units unit.