时间序列中的掩蔽值#
警告
请注意,对于具有单位的列,遮罩还不起作用。
掩蔽值的执行方式与 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