2014-01-08 4 views
-3

Я хочу преобразовать массив numpy в список.Преобразование массива numpy в список

вход:

s = [ 6.72599983 -7.15100002 4.68499994] 

я хочу, чтобы результат как:

s = [6.72599983, -7.15100002, 4.68499994] 

, как я буду делать это в Python?

+0

Не выглядит * слишком * трудно ... вы делали какие-либо попытки? – mgilson

+0

Да, у него есть тип sam

+0

Возможный дубликат [Преобразование строки, которая выглядит как список в настоящий список - python] (http://stackoverflow.com/questions/20250396/converting-string-that -look-like-a-list-in-real-list-python) – alvas

ответ

1

Если у вас есть numpy.ndarray, то попробуйте следующее:

>>> import numpy 
>>> lst = [6.72599983, -7.15100002, 4.68499994] 
>>> numpy.asarray(lst) 
array([ 6.72599983, -7.15100002, 4.68499994]) 
>>> list(numpy.asarray(lst)) 
[6.7259998300000001, -7.1510000199999997, 4.68499994] 

Если вы ошибочно отлиты в numpy.array в строку, то вам нужно использовать, что уборка трюк с аст, чтобы получить его в список.

>>> import ast, numpy 
>>> s = str(numpy.asarray(lst)) 
>>> s 
'[ 6.72599983 -7.15100002 4.68499994]' 
>>> list(ast.literal_eval(",".join(s.split()).replace("[,", "["))) 
[6.72599983, -7.15100002, 4.68499994] 
+8

Отсутствует запятая. 'ast' не поможет – mgilson

+0

@mgilson, отредактированный, я печатал слишком медленно. – alvas

1

Ваш вопрос до сих пор не совсем ясно.

Если s действительно типа «numpy.ndarray», а не строка (как старая версия вашего вопроса предложил), а затем просто сделать

s = list(s) 

и s будет список.

Смежные вопросы