我稍微修改了缓冲器的环形缓冲区的实现。我想用datetime64值初始化它。我可以得到最后一分钟的结果,如下所示:
self.x = RingBuffer(
np.array([
np.datetime64('now') - np.timedelta64(seconds=i)
for i in range(60)
]))
self.y = RingBuffer(np.zeros(60))然而,没有最后一分钟的数据。我想要一些np.NA在self.x中,但是这个NEP似乎没有领先的位置。每秒钟(比方说),一个新的实际值(来自某个传感器)将被添加到self.y中,而当前的时间戳将被添加到self.x中。
如何用缺失的值初始化self.x?
这些数据最终是通过MatPlotLib…绘制的。
发布于 2017-07-20 10:30:15
使用蒙面阵列,这实际上是微不足道的:
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())https://stackoverflow.com/questions/45187288
复制相似问题