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

numpy和scanf等价物,将二进制输出流转换为数组,numpy,gpib,Numpy,Gpib,我正在使用LinuxGPIB库与工作台设备对话。我可以要求设备输出 从它的缓冲区,它流到std输出。我用的是: import gpib gpib.write(16,"FORM3;OUTPDATA;") #FORM3 is binary data=gpib.read(16,10000) 我不确定输出格式是什么样的,我忘记了数据是如何分隔的。 但我想我需要做一些scanf函数来抓取浮动并将其放入 数组 我安装了numpy,并且认为应该有一种方法让python从流中获取浮动并将它们放入数组中

我正在使用LinuxGPIB库与工作台设备对话。我可以要求设备输出 从它的缓冲区,它流到std输出。我用的是:

import gpib 

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

data=gpib.read(16,10000)
我不确定输出格式是什么样的,我忘记了数据是如何分隔的。 但我想我需要做一些scanf函数来抓取浮动并将其放入 数组

我安装了numpy,并且认为应该有一种方法让python从流中获取浮动并将它们放入数组中


谷歌帮不了我多少忙,numpy对我来说真的很新鲜。我知道MATLAB和C命令正常。

如果像上面那样将数据读入字符串,请使用
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来完成的。请参见

如果您像上面那样将数据读入字符串,请使用
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来完成的。请参见

谢谢,我将尝试此解决方案。如果分隔符恰好是换行符\n或逗号,我将如何实现它?我想我已经解决了前面的注释问题;谢谢,我试试这个解决方案。如果分隔符恰好是换行符\n或逗号,我将如何实现它?我想我已经解决了前面的注释问题;