Преобразование строки в массив numpy и наоборот в python

1

У меня есть массив 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

Пожалуйста, помогите мне в решении того же

  • 0
    Можете ли вы привести пример img_str ?
  • 0
    Посмотрите на img_str . Посмотреть все многоточие (...). Это контролируется параметром threshhold . Это тот же тип конденсации, который мы получаем из простого print(img) . Он также включает в себя все вложенные [] обычной печати. Это не хороший формат для сохранения.
Показать ещё 3 комментария
Теги:
pandas
numpy

2 ответа

2

Задача состоит в том, чтобы сохранить не только буфер данных, но и форму и тип. np.fromstring считывает буфер данных, но как 1d-массив; вы должны получить 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]])
0

Пойдет ли json вариант?

После ответа здесь:

import numpy as np
import json

img = np.ones((10, 20))
img_str = json.dumps(img.tolist())
img_numpy = numpy.array(json.loads(img_str))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню