Numpy从二进制字符串转换为浮点数组

时间:2017-12-18 13:06:33

标签: python mysql arrays numpy

我有一个长度为16的特征向量存储在mysql中作为BLOB,我在python中获取该BLOB。它被取为二进制字符串。我目前正在使用以下方法将其转换为数组:

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

有没有办法在不使用list(map)的情况下将此字符串转换为numpy数组?

1 个答案:

答案 0 :(得分:1)

您可以使用:

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

无需通过b','将其拆分,您可以通过sep提供。它与字节一样工作,但更准确地说,你应该使用text.decode('ascii')