【问题标题】:Convert a string of float arrays into an ndarray将一串浮点数组转换为 ndarray
【发布时间】:2021-09-23 15:03:51
【问题描述】:

想象一个人必须将 ndarray 转换为字符串,然后他必须将字符串转换回 ndarray。例如,你有这个字符串:

[1.1463377809323188, -5.631205546574898, 2.2669977232047676][4.579898563059968, 7.903827618691004, -6.286433358859447]

如何将其转换为像这样的 ndarray:

[[ 1.14633778 -5.63120555  2.26699772]
 [ 4.57989856  7.90382762 -6.28643336]]

我正在考虑将 str 转换为列表,然后将列表转换为 ndarray。然而,str.split() 方法给我这个:

['[1.1463377809323188,', '-5.631205546574898,', '2.2669977232047676][4.579898563059968,', '7.903827618691004,', '-6.286433358859447]']

当我尝试split('[]') 时,列表中只剩下一个元素:

['[2.182687926670855, -6.165595264315509, 2.0514527771233135][-1.9916686860482642, 6.353279016100898, -2.237430822379459]']

【问题讨论】:

  • 为什么要转换成字符串?

标签: python string list multidimensional-array


【解决方案1】:

这可行:

string = "[1.1463377809323188, -5.631205546574898, 2.2669977232047676][4.579898563059968, 7.903827618691004, -6.286433358859447]"
>>> [[float(x.strip()) for x in row.replace("[","").split(",")] for row in string.split("]") if len(row.strip())>0]
[[1.1463377809323188, -5.631205546574898, 2.2669977232047676],
 [4.579898563059968, 7.903827618691004, -6.286433358859447]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多