我正在使用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。答案 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