[英]real time data acquisition/processing using Python
我試圖編寫一個代碼,從緩沖區獲取信息(作為多維數組返回),從所述數組中提取某些元素。
所以這就是我所擁有的:
Drest = np.array([]) #Set up array for data to be read to (not sure if this is needed)
t_end = time.time() + 5
while time.time() < t_end:
Drest = ftc.getData() #fts is the buffer that I'm connecting to.
print("Drest: %s" %Drest)
這將返回如下所示的輸出:
[[ 6.79609478e-01 6.79609478e-01 6.79609478e-01 6.79609478e-01
6.79609478e-01 6.79609478e-01 6.79609478e-01 6.79609478e-01
6.79609478e-01 6.79609478e-01 6.79609478e-01 6.79609478e-01
6.79609478e-01 6.79609478e-01 6.79609478e-01 6.79609478e-01]
[ 6.81910694e-01 6.81910694e-01 6.81910694e-01 6.81910694e-01
6.81910694e-01 6.81910694e-01 6.81910694e-01 6.81910694e-01
6.81910694e-01 6.81910694e-01 6.81910694e-01 6.81910694e-01
6.81910694e-01 6.81910694e-01 6.81910694e-01 6.81910694e-01]]
問題1隨着數據的進入,我想添加一個“0”作為每個數組的第一個元素,所以我基本上有一個第一列為零。 我試過這個,但是它沒有將它添加到每一個,只是第一個元素,而不是每個數組的每個元素中的第一個元素。
block = 1
np.append(block, [Drest])
問題2我還需要從多維數組中創建每個其他“列”的平均值,所以我嘗試了這個,但我不能為我的生活讓這個工作!
for i in range(0, len(Drest), 2):
HbO2 = Drest[i]
HbO2Rest = sum(HbO2)/float(len(HbO2))
感謝您的幫助:)
問題1:當數據進入時,我想添加一個“0”作為每個數組的第一個元素,所以我基本上有一個第一列為零。 我試過這個,但是它沒有將它添加到每一個,只是第一個元素,而不是每個數組的每個元素中的第一個元素。
import numpy as np
New_Drest = np.asarray([0 for x in xrange(len(Drest))])
Modified_Drest = np.concat(New_Drest,Drest)
問題2:我還需要從多維數組中創建每個其他“列”的平均值,所以我嘗試了這個,但我不能為我的生活讓這個工作!
Numpy有一個卑鄙的api。
for i in xrange(len(Drest)):
if i % 2 == 0:
HbO2 = Drest[i]
HbO2Rest = np.mean(HbO2)
Python鼓勵使用xrange而不是range。
問題1
假設Drest是一個數組或數組:
b = [x.insert(0,0) for x in Drest]
問題2
使用先前創建的數組切片可以做同樣的事情......
c = [sum(y[1:])/len(y[1:])*1.0 for y in b]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.