我略微修改了mtambos/ring_buffer的环形缓冲区的实现。我想用datetime64
值初始化它。我可以这样得到最后一分钟:
self.x = RingBuffer(
np.array([
np.datetime64('now') - np.timedelta64(seconds=i)
for i in range(60)
]))
self.y = RingBuffer(np.zeros(60))
但是,最后一分钟没有数据。我希望在self.x
中有一些missing value np.NA
,但这NEP似乎没有领先。每隔一秒(比如说),一个新的实际值(来自某个传感器)将被添加到self.y
,并且当前时间戳将被添加到self.x
。
如何使用缺失值初始化self.x
?
此数据最终通过MatPlotLib
...
答案 0 :(得分:0)
使用masked array,这实际上是微不足道的:
self.x = RingBuffer(
ma.array([
now - np.timedelta64(datetime.timedelta(microseconds=i))
for i in range(self._seconds)
], mask=self._seconds*[True]))
self.y = RingBuffer(ma.zeros(self._seconds),
mask=self._seconds*[True])
class RingBuffer(ma.MaskedArray)
。要绘制数据,需要这样做:
self.plt.set_xdata(self.x.compressed())
self.plt.set_ydata(self.y.compressed())