如何从字符串创建numpy数组?

时间:2010-11-03 19:42:46

标签: python arrays numpy fft

我有一个文件阅读器,它从文件中读取 n 个字节,并返回表示该(二进制)数据的字符串。我想将 n 字节读入一个数字的numpy数组并在其上运行FFT,但是我在从字符串创建数组时遇到了麻烦。几行例子很棒。

修改 我正在读取原始二进制数据,因此我得到的字符串看起来像'\x01\x05\x03\xff'...。我希望这成为[1, 5, 3, 255]

3 个答案:

答案 0 :(得分:20)

您可以直接使用numpy.fromstring

执行此操作
import numpy as np
s = '\x01\x05\x03\xff'
a = np.fromstring(s, dtype='uint8')

完成此操作后,aarray([ 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(','))