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

2024-05-13 11:47:01 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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


Tags: 文件数据字符串fftnumpy编辑字节二进制
3条回答

不知道你得到了什么是困难的,但如果它是逗号分隔的整数,你可以这样做:

myInts = map(int, myString.split(','))

您可以使用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例程。

>>> '\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])

相关问题 更多 >