MaskedColumn¶
-
class
astropy.table.MaskedColumn[source]¶ Bases:
astropy.table.Column,astropy.table._column_mixins._MaskedColumnGetitemShim,numpy.ma.MaskedArrayDefine a masked 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
- mask : list, ndarray or None
Boolean mask for which True indicates missing or invalid data
- fill_value : float, int, str or None
Value used when filling masked column elements
- 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 MaskedColumn is similar to a Column except that it includes
maskandfill_valueattributes. It can be created in two different ways:Provide a
datavalue but notshapeorlength(which are inferred from the data).Examples:
col = MaskedColumn(data=[1, 2], name='name') col = MaskedColumn(data=[1, 2], name='name', mask=[True, False]) col = MaskedColumn(data=[1, 2], name='name', dtype=float, fill_value=99)
The
maskargument will be cast as a boolean array and specifies which elements are considered to be missing or invalid.The
dtypeargument 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
dtypevalue is provide then the type is inferred usingnp.array(data). Whendatais provided then theshapeandlengtharguments are ignored.Provide
lengthand optionallyshape, but notdataExamples:
col = MaskedColumn(name='name', length=5) col = MaskedColumn(name='name', dtype=int, length=10, shape=(3,4))
The default
dtypeisnp.float64. Theshapeargument is the array shape of a single cell in the column.
Attributes Summary
dataThe plain MaskedArray data held by this column. fill_valueFilling value. infoContainer for meta information like name, description, format. nameThe name of 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. filled([fill_value])Return a copy of self, with masked values filled with a given value. insert(obj, values[, mask, axis])Insert values along the given axis before the given indices and return a new MaskedColumnobject.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. Attributes Documentation
-
data¶ The plain MaskedArray data held by this column.
-
fill_value¶ Filling value.
-
info¶ Container for meta information like name, description, format.
This is required when the object is used as a mixin column within a table, but can be used as a general way to store meta information. In this case it just adds the
mask_valattribute.
-
name¶ The name of this column.
Methods Documentation
-
convert_unit_to(new_unit, equivalencies=[])¶ 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
unitproperty.Parameters: - new_unit : str or
astropy.units.UnitBaseinstance 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
- new_unit : str or
-
copy(order='C', data=None, copy_data=True)¶ Return a copy of the current instance.
If
datais supplied then a view (reference) ofdatais used, andcopy_datais 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
ais Fortran contiguous, ‘C’ otherwise. ‘K’ means match the layout ofaas 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
datainstead 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)
-
filled(fill_value=None)[source]¶ Return a copy of self, with masked values filled with a given value.
Parameters: Returns: - filled_column : Column
A copy of
selfwith masked entries replaced byfill_value(be it the function argument or the attribute ofself).
-
insert(obj, values, mask=None, axis=0)[source]¶ Insert values along the given axis before the given indices and return a new
MaskedColumnobject.Parameters: - obj : int, slice or sequence of ints
Object that defines the index or indices before which
valuesis inserted.- values : array_like
Value(s) to insert. If the type of
valuesis different from that of quantity,valuesis converted to the matching type.valuesshould be shaped so that it can be broadcast appropriately- mask : boolean array_like
Mask value(s) to insert. If not supplied then False is used.
- axis : int, optional
Axis along which to insert
values. Ifaxisis None then the column array is flattened before insertion. Default is 0, which will insert a row.
Returns: - out :
MaskedColumn A copy of column with
valuesandmaskinserted. Note that the insertion does not occur in-place: a new masked column is returned.
-
more(max_lines=None, show_name=True, show_unit=False)¶ 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)¶ Return a list of formatted string representation of column values.
If no value of
max_linesis supplied then the height of the screen terminal is used to setmax_lines. If the terminal height cannot be determined then the default will be determined using theastropy.conf.max_linesconfiguration item. If a negative value ofmax_linesis 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)¶ Print a formatted string representation of column values.
If no value of
max_linesis supplied then the height of the screen terminal is used to setmax_lines. If the terminal height cannot be determined then the default will be determined using theastropy.conf.max_linesconfiguration item. If a negative value ofmax_linesis 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.