Как создать массив numpy из string?
у меня есть считыватель файлов, который читает n bytes из файла и возвращает строку символов, представляющих эти (двоичные) данные. Я хочу почитать n байты в массив чисел numpy и запустить FFT на нем, но у меня возникли проблемы с созданием массива из строки. Пара строк примера будет потрясающе.
Edit:
Я читаю необработанные двоичные данные, и поэтому строка, которую я получаю, выглядит как 'x01x05x03xff'...
. Я хочу, чтобы это стало [1, 5, 3, 255]
.
3 ответов
вы можете сделать это прямо с 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])
Не зная, что у вас есть, это сложно, но если бы это были целые числа с запятыми, вы могли бы сделать что-то вроде этого:
myInts = map(int, myString.split(','))