时间序列中的掩蔽值#

警告

请注意,对于具有单位的列,遮罩还不起作用。

掩蔽值的执行方式与 Table 对象(请参见 屏蔽和缺失值 ). 使用掩码最方便的方法是初始化 TimeSeries 对象使用 masked=True 选择权。

例子#

我们从初始化 TimeSeries 对象与 masked=True ::

>>> from astropy import units as u
>>> from astropy.timeseries import TimeSeries
>>> ts = TimeSeries(time_start='2016-03-22T12:30:31',
...                 time_delta=3 * u.s,
...                 n_samples=5, masked=True)

我们现在可以在时间序列中添加一些数据:

>>> ts['flux'] = [1., -2., 5., -1., 4.]

如您所见,有些值为负。我们可以使用以下方法进行屏蔽:

>>> ts['flux'].mask = ts['flux'] < 0
>>> ts
<TimeSeries masked=True length=5>
          time            flux
          Time          float64
----------------------- -------
2016-03-22T12:30:31.000     1.0
2016-03-22T12:30:34.000      --
2016-03-22T12:30:37.000     5.0
2016-03-22T12:30:40.000      --
2016-03-22T12:30:43.000     4.0

我们还可以访问掩码值:

>>> ts['flux'].mask
array([False,  True, False,  True, False]...)

掩码是基于列的,因此屏蔽单个单元格不会屏蔽整个行。有了屏蔽单元之后,通常理解屏蔽值并对列进行操作的函数可以忽略屏蔽的条目:

>>> import numpy as np
>>> np.min(ts['flux'])
1.0
>>> np.ma.median(ts['flux'])
4.0