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

erj*_*ang 10 python arrays numpy fft

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

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

Tim*_*omb 20

您可以直接执行以下操作numpy.fromstring:

import numpy as np
s = '\x01\x05\x03\xff'
a = np.fromstring(s, dtype='uint8')
Run Code Online (Sandbox Code Playgroud)

一旦完成这个,aarray([ 1, 5, 3, 255])你可以使用常规的SciPy的/ numpy的FFT例程.


ken*_*ytm 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])
Run Code Online (Sandbox Code Playgroud)