【问题标题】:Converting numpy array to a list [closed]将numpy数组转换为列表[关闭]
【发布时间】:2014-01-26 04:18:39
【问题描述】:

我想将一个 numpy 数组转换为列表。

输入是:

s = [ 6.72599983 -7.15100002  4.68499994]

我想输出为:

s = [6.72599983, -7.15100002, 4.68499994]

我将如何在 python 中做到这一点?

【问题讨论】:

  • 看起来不太 ...你有尝试过吗?
  • 是的,它有类型
  • 那么你没有string,你有一个numpy数组——要得到一个列表,只需使用list(s)。但是如果你认为你有一个字符串,也许你不需要转换它......数组也很好:)
  • @sam 应该正确地写出问题。如果 snumpy.ndarray 为什么 hell 你写它是一个字符串并在问题中编写代码以确保隐藏它? -1 -- 学会至少在提问之前搜索the documentation

标签: python numpy


【解决方案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]

【讨论】:

  • 缺少逗号。 ast 无济于事
  • @mgilson,已编辑,我打字太慢了。
【解决方案2】:

您的问题仍然很不清楚。

如果s 真的是“numpy.ndarray”类型而不是字符串(正如您问题的旧版本所建议的那样),那么就这样做

s = list(s)

s 将成为一个列表。

【讨论】:

    【解决方案3】:

    s.split() 应该可以工作。

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

    【讨论】:

      猜你喜欢
      • 2017-03-08
      • 2019-09-07
      • 2019-08-30
      • 2015-01-07
      • 2021-05-20
      • 2021-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多