簡體   English   中英

使用Python進行實時數據采集/處理

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM