numpy和scanf等价物,将二进制输出流转换为数组

时间:2011-06-17 20:05:41

标签: numpy gpib

我正在使用linux-gpib库与工作台设备进行通信。我可以要求设备输出 从它的缓冲区,它流向std out。我用的是:

import gpib 

gpib.write(16,"FORM3;OUTPDATA;") #FORM3 is binary

data=gpib.read(16,10000)

我不确定输出格式是什么样的,我忘了数据是如何分隔的。 但我想我需要做一些scanf函数来抓住浮点数并将它们输入 一个数组。

我安装了numpy,并且认为应该有办法让python从流中抓取浮点数并将它们放入数组中。

谷歌没有多少帮助,numpy对我来说真的很新。我知道MATLAB和C命令OK。

1 个答案:

答案 0 :(得分:1)

如果您将数据读取为字符串,就像上面所做的那样,请使用numpy.fromstring

data = '1 2 3 4 5 6 7 8'
print np.fromstring(data, sep=' ')
# [ 1.  2.  3.  4.  5.  6.  7.  8.]

通常在Python中,使用正则表达式而不是scanf进行更一般的解析。见sscanf in Python