2
我正在編寫代碼來分析樹莓派上的加速度計數據。傳感器數據輸出到單個txt文件,並以\ t分隔列。我使用numpy.loadtxt導入了文本文件並將其解壓到單獨的數組中。我可以在陣列上執行諸如trapz和cumtrapz之類的操作。我需要找到一個numpy數組中的值的位置,並使用它來指向另一個numpy數組的相同位置的值
該數據將與另一個將輸出事件特定時間的傳感器結合使用。我想花時間,從我的傳感器中找到最接近的記錄時間,並將其與其他陣列的值相對應。
我嘗試使用numpy.where與我知道的是在列表中,並得到的輸出的特定時間值「(陣列([],D型細胞= 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
所以我從t中的值搜索X。它現在正在輸出 (array([101]),)
如何從另一個數組中打印相應的數字?
很好!你介意看看你的「x,y,z,t」是在閱讀之後嗎?不需要成爲整個文件,僅僅前幾個條目(和它們的形狀)就足夠了。 – MSeifert
當我告訴它打印t的前幾個值是[0.2712 0.28029999 0.28920001 0.29800001 0.30680001 0.3163 0.32530001 0.3344 0.3441 0.35280001 0.36129999 0.37079999 – Richard
只要打印x [ti [0]]打印相應的x值if ti輸出爲(array([101]),) – Richard