我的时间线存储在简单的numpy数组中,它们很长(>;1000万个条目)
我必须检测到机器的停机,它显示在时间向量的跳跃中。关机后,我想删除接下来的10个值(传感器确实会在开机后一段时间内产生不好的结果)并继续。你知道吗
我想出了以下代码:
Keep_data=np.empty_like(Timestamp_new,dtype=np.bool)
Keep_data[0]=False
Keep_data[1:]=Timestamp_new[1:]>(Timestamp_new[:-1]+min_shutdown_length)
for item in np.nonzero(np.logical_not(Keep_data))[0]:
Keep_data[item:min(item+10,len(Keep_data)]=False
Timestampnew=Timestampnew[Keep_data]
如果没有纯python循环,有人能推荐一个更有效的代码吗?你知道吗
谢谢你。你知道吗
基本上,您正在尝试扩展/扩大或在图像处理方面^{} 区域} 。现在,您正试图使它从输入数组
False
。同样,我们有一个内置的as^{False
中的每个这样的Keep_data
元素开始向更高的索引增长。因此,我们需要使用不同的偏移量(或者scipy称之为:origin
),而不是默认的0
,否则每个元素的两端都会扩展。你知道吗因此,总而言之,一个用它来摆脱代码中循环部分的实现,我们会有这样一个实现-
另一种方法更接近于问题中作为循环代码发布的方法,但是用^{} 矢量化,看起来像这样-
相关问题 更多 >
编程相关推荐