我正在编写代码来分析树莓派上的加速度计数据。传感器数据输出到单个txt文件,列以\ t分隔。我使用numpy.loadtxt导入了文本文件,并将其解压缩到单独的数组中。我可以在数组上执行trapz和cumtrapz之类的操作。
此数据将与另一个输出事件特定时间的传感器结合使用。我想花点时间,从传感器中找到最接近的记录时间,并将其与其他阵列的值相对应。
我尝试使用具有特定时间值的numpy.where,我知道它在列表中,输出为“(array([],dtype = int32),)”
这是我运行的代码。我敢肯定我至少误用了一件事。我仍然是Python和编码的初学者......
import logging
import sys
import numpy as np
from scipy import integrate
x,y,z,t=np.loadtxt('a.txt', dtype={'names':['x','y','z','t'],
'formats':['f4','f4','f4','f4']},unpack='true')
p = integrate.trapz(integrate.cumtrapz(x, t, initial=0), t)
ti = np.where(x==1.5670002)
print ti
print p
完整的输出是
(array([], dtype=int32),)
0.0114166
所以我在x中搜索来自t的值。它正在输出 (阵列([101]),)
我如何从另一个阵列打印相应的数字?
答案 0 :(得分:0)
这是我的解决方案:
<div>
<span>hello<a href="#">link</a></span>
</div>
<div class="special">
<span>hello<a href="#">link</a></span>
</div>
<p>
<a href="#"> something else</a>
</p>
输出
import logging
import sys
import numpy as np
from scipy import integrate
x,y,z,t=np.loadtxt('a.txt', dtype={'names':['x','y','z','t'],
'formats':['f4','f4','f4','f4']},unpack='true')
p = integrate.cumtrapz(integrate.cumtrapz(x, t, initial=0), t)
t0=input("What is reference time?")
ti = np.where(t>=t0)[0][0]
if t[ti]-t0 <= t0-t[ti-1]:
t1 = ti
else:
t1 = ti-1
print ('closest time was {0:0.4f}\ndisplacement at that time was {1:0.4f}' .format(t[t1],p[t1]))
似乎有效。当参考时间超出可用范围时,我将不得不添加错误消息。不过会喜欢一些建设性的批评。你认为任何命令比我使用的命令更好/更快?