使用 Python 的实时数据 acquisition/processing
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)
这 returns 输出如下所示:
[[ 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
我还需要从多维数组中创建每个其他 "column" 的平均值,所以我已经尝试过了,但我这辈子都做不到!
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: 我还需要从多维数组中创建每个其他 "column" 的平均值,所以我试过了,但我不能'为了我的生活让这个工作!
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]
问题二
您可以使用先前创建的数组进行切片来做同样的事情...
c = [sum(y[1:])/len(y[1:])*1.0 for y in b]
我正在尝试编写一个代码,该代码将从缓冲区(作为多维数组返回)获取信息,并从所述数组中提取某些元素。
这就是我所拥有的:
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)
这 returns 输出如下所示:
[[ 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 我还需要从多维数组中创建每个其他 "column" 的平均值,所以我已经尝试过了,但我这辈子都做不到!
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: 我还需要从多维数组中创建每个其他 "column" 的平均值,所以我试过了,但我不能'为了我的生活让这个工作!
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]
问题二
您可以使用先前创建的数组进行切片来做同样的事情...
c = [sum(y[1:])/len(y[1:])*1.0 for y in b]