繁体   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