【问题标题】:how to convert string to numpy array?like [(160, 179), (243, 179), (203, 227), (166, 269), (236, 269)]如何将字符串转换为 numpy 数组?如 [(160, 179), (243, 179), (203, 227), (166, 269), (236, 269)]
【发布时间】:2018-08-07 03:27:41
【问题描述】:

我有一个字符串,比如 "[(160, 179), (243, 179), (203, 227), (166, 269), (236, 269)]"。我想知道如何转换使用 python 到一个 5by2numpy 数组?

我试过这种方法

np.asarray(xxx)

但是搞错了

谢谢!

【问题讨论】:

  • 你从哪里得到这样的字符串?该字符串表示一个有效的 Python 文字,因此您可以使用 eval 或更安全的 ast.literal_eval。但是,您可能应该修复生成此类字符串的任何上游进程。很可能,这是关于序列化的错误决定的结果。
  • 你问错了,你的问题应该是“如何将字符串中的列表转换为列表”
  • 我已经通过使用以下代码完成了此操作: label=np.asarray(re.findall('(\d+)',raw_lmk),dtype=np.float32).reshape(-1,2 )

标签: python


【解决方案1】:

没有什么好办法,但你总是可以试试eval

 >>> import ast
 >>> lst = ast.literal_eval('["A","B" ,"C" ," D"]')
 >>> lst
["A", "B", "C", " D"]

然后你可以将它转换为一个 np 数组,就像你对任何 python 列表所做的那样。

>>>import numpy as np
>>>lst = numpy.array(lst)

希望有所帮助。

【讨论】:

    猜你喜欢
    • 2015-04-26
    • 2013-05-05
    • 2016-03-10
    • 1970-01-01
    • 2021-04-26
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多