Для обычных массивов используйте ast.literal_eval
:
>>> from ast import literal_eval
>>> x = "[1,2,3,4]"
>>> literal_eval(x)
[1, 2, 3, 4]
>>> type(literal_eval(x))
<type 'list'>
>>>
numpy.array
«s, хотя немного сложнее, потому что, как Python делает их как строки:
>>> import numpy as np
>>> x = [[1,2,3], [4,5,6]]
>>> x = np.array(x)
>>> x
array([[1, 2, 3],
[4, 5, 6]])
>>> x = str(x)
>>> x
'[[1 2 3]\n [4 5 6]]'
>>>
Один хак вы могли бы использовать, хотя для простые заменяют пробелы запятыми, используя re.sub
:
>>> import re
>>> x = re.sub("\s+", ",", x)
>>> x
'[[1,2,3],[4,5,6]]'
>>>
Затем вы можете использовать ast.literal_eval
и превратить его обратно в numpy.array
:
>>> x = literal_eval(x)
>>> np.array(x)
array([[1, 2, 3],
[4, 5, 6]])
>>>
' "[1, 2]"= [1, 2]' – akaRem
akaRem ?? Это недопустимый синтаксис для списка. Всем всеравно. Предполагается, что строки содержат правильные представления списков. –
Ooops .......... – akaRem