在Python中将字符串转换为numpy数组,反之亦然

时间:2018-08-24 09:12:37

标签: python pandas numpy

我有一个numpy数组,该数组是打开cv读取的图像并将其另存为字符串。因此,我将np数组转换为字符串并存储了它。现在,我想检索值(它是一个字符串)并将其转换为原始的numpy数组维。大家能帮我怎么做吗?

我的代码如下:

img = cv2.imread('9d98.jpeg',0)
img.shape    # --> (149,115)
img_str=np.array2string(img,precision=2,separator=',') # to string length 197? which I dont know how
img_numpy=np.fromstring(img_str,dtype=np.uint8) # shape (197,) since this is returning only 1D array

请帮助我解决同样的问题

2 个答案:

答案 0 :(得分:2)

挑战在于不仅要保存数据缓冲区,还要保存shape和dtype。 np.fromstring读取数据缓冲区,但作为一维数组;您必须从其他位置获取dtype和形状。

In [184]: a=np.arange(12).reshape(3,4)

In [185]: np.fromstring(a.tostring(),int)
Out[185]: array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])

In [186]: np.fromstring(a.tostring(),a.dtype).reshape(a.shape)
Out[186]: 
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

答案 1 :(得分:1)

要使用json选项吗?

遵循答案here

<section class="{{ data.widget.animationType }}">
    {{ apos.area(data.widget, 'areaMain', {
      widgets: {
        'apostrophe-rich-text': {
            toolbar: ['Bold', 'Italic', 'Split',  'Link', 'Unlink']
        },
        'simple-image': {}
      }
    }) }}
</section>