У меня есть вектор функций длиной 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)
?
Ты можешь использовать:
import numpy as np
np.fromstring(text, sep=',')
Нет необходимости разбивать его на b','
вы можете предоставить его через sep
. Он работает так же, как и с байтами, но, если быть более точным, вы должны использовать text.decode('ascii')
.