Преобразование Numpy из двоичной строки в массив с плавающей запятой

У меня есть вектор признаков длиной 16, хранящийся в mysql как BLOB, и я извлекаю этот BLOB в python. Он извлекается как двоичная строка. В настоящее время я сначала конвертирую его в массив, используя:

list(map(lambda x: list(map(float, x['encoded_vals'].split(b','))), 
    visual_features))

Мой дикт выглядит примерно так:

{img_id: 1, encoded_vals: b'0.99451257448,0.8541256468...'} # Till 16 values

Есть ли способ преобразовать эту строку в массив numpy без использования list(map)?


person ayushgp    schedule 18.12.2017    source источник


Ответы (1)


Вы можете использовать:

import numpy as np
np.fromstring(text, sep=',')

Нет необходимости разбивать его на b',', вы можете предоставить его через sep. Он работает так же, как и с байтами, но если быть более точным, вы должны использовать text.decode('ascii').

person godaygo    schedule 18.12.2017