我希望使用scipy替换少量的空数据,而不必用一条不切实际的线性线将它们连接起来(数据要可视化)。我看过一些文档和示例,但很难将我所看到的与我的上下文中的用法联系起来。你知道吗
例如,在下面这样一段时间内
我有一个方法来查找这组空条目之前的最后一个值和之后的第一个值。你知道吗
如何使用这些值并返回一个包含三个插值的对象来写入数据集?你知道吗
编辑:
我试图从包含一系列空值的两个实值的数据创建两个numpy数组。我从我编写的SQLServer类中获取列表形式的数据。我试着这样做
time = connection.getColumnData('DateTimeStamp', table, extreme_values['start_time'] + '.000', extreme_values['end_time'] + '.000')
val = connection.getColumnData(column, table, extreme_values['start_time'] + '.000', extreme_values['end_time'] + '.000')
time = [str(d) for d in time]
#val = [float(d) for d in val]
val_num = np.asarray(val, dtype=float)
time_num = np.asarray(time, dtype='datetime64')
not_nan = ~np.isnan(val_num, dtype=bool)
但它在运行时在线路上中断
filled_data = np.interp(time_num, time_num[not_nan], val_num[not_nan])
每节课举行一次
array([ 5.625 , nan, nan, nan, 5.4375])
在时间上
array(['2012-04-05T07:30:00+0000', '2012-04-05T08:00:00+0000',
'2012-04-05T08:30:00+0000', '2012-04-05T09:00:00+0000',
'2012-04-05T09:30:00+0000'], dtype='datetime64[s]')
不在不在
array([ True, False, False, False, True], dtype=bool)
假设您的数据位于两个numpy数组中(称它们为} :
data
和timestamp
),并且您希望根据它们的时间戳在data
数组中填充NaN
值,您可以使用^{编辑:将数据放入numpy数组实际上是一个棘手的部分。我猜您的
getColumnData
调用的结果主要是数字,在NULL
处有一些None
值。让我们看看在这种情况下会发生什么:None
的存在意味着numpy不知道这是一个数字数组,这就是numpy.isnan
调用失败的原因。我们可以通过告诉numpy我们实际上需要一个数字数组来解决这个问题:相关问题 更多 >
编程相关推荐