将numpy数组转换为列表

时间:2014-01-08 07:20:43

标签: python numpy

我想将numpy数组转换为list。

输入是:

s = [ 6.72599983 -7.15100002  4.68499994]

我希望输出为:

s = [6.72599983, -7.15100002, 4.68499994]

我将如何在python中执行此操作?

3 个答案:

答案 0 :(得分: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转换为字符串,那么你需要使用ast的清理技巧将其放入列表中。

>>> 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]

答案 1 :(得分:1)

你的问题仍然不清楚。

如果s的确属于'numpy.ndarray'类型而不是字符串(如您提出的问题的旧版本),那么只需执行

s = list(s)

s将成为一个列表。

答案 2 :(得分:0)

s.split()应该有用。

您可以在此处找到解决方案:Python - convert string to list