我有一个文件阅读器,它从文件中读取 n 个字节,并返回表示该(二进制)数据的字符串。我想将 n 字节读入一个数字的numpy数组并在其上运行FFT,但是我在从字符串创建数组时遇到了麻烦。几行例子很棒。
修改
我正在读取原始二进制数据,因此我得到的字符串看起来像'\x01\x05\x03\xff'...
。我希望这成为[1, 5, 3, 255]
。
答案 0 :(得分:20)
您可以直接使用numpy.fromstring
:
import numpy as np
s = '\x01\x05\x03\xff'
a = np.fromstring(s, dtype='uint8')
完成此操作后,a
为array([ 1, 5, 3, 255])
,您可以使用常规的scipy / numpy FFT例程。
答案 1 :(得分:5)
>>> '\x01\x05\x03\xff'
'\x01\x05\x03\xff'
>>> map(ord, '\x01\x05\x03\xff')
[1, 5, 3, 255]
>>> numpy.array(map(ord, '\x01\x05\x03\xff'))
array([ 1, 5, 3, 255])
答案 2 :(得分:1)
如果不知道你的内容是多么艰难,但如果它是逗号分隔的整数,你可以做这样的事情:
myInts = map(int, myString.split(','))