python - 所有字符串列表到 numpy float 数组

标签 python arrays numpy

我正在从 pandas 读取一个 csv 文件,其中有一列 (3,3) 形状的列表。 示例列表如下。

[[45.70345721, -0.00014686, -1.679e-05], [-0.00012219, 45.70271889, 0.00012527], [-1.161e-05, 0.00013083, 45.70306778]]

我尝试使用 np.array(arr).astype(np.float) 将此列表转换为 numpy float 数组。但它给出了以下错误。

ValueError: could not convert string to float:

当我搜索根本原因时,我发现该列表是完全字符串格式的。 print [i for i in arr] 给出以下内容,其中所有内容都是字符串。

['[', '[', '4', '5', '.', '7', '0', '3', '4', '5', '7', '2', '1', ',', ' ', '-', '0', '.', '0', '0', '0', '1', '4', '6', '8', '6', ',', ' ', '-', '1', '.', '6', '7', '9', 'e', '-', '0', '5', ']', ',', ' ', '[', '-', '0', '.', '0', '0', '0', '1', '2', '2', '1', '9', ',', ' ', '4', '5', '.', '7', '0', '2', '7', '1', '8', '8', '9', ',', ' ', '0', '.', '0', '0', '0', '1', '2', '5', '2', '7', ']', ',', ' ', '[', '-', '1', '.', '1', '6', '1', 'e', '-', '0', '5', ',', ' ', '0', '.', '0', '0', '0', '1', '3', '0', '8', '3', ',', ' ', '4', '5', '.', '7', '0', '3', '0', '6', '7', '7', '8', ']', ']']

如何将此列表转换为 numpy float 组?

编辑

这是我的数据框的一部分的快照。 enter image description here

加载后,数据帧采用以下格式。 df 这是一个小示例数据框。

df = pd.DataFrame(columns=["e_total"], data=[[['[', '[', '4', '5', '.', '7', '0', '3', '4', '5', '7', '2', '1', ',', ' ', '-', '0', '.', '0', '0', '0', '1', '4', '6', '8', '6', ',', ' ', '-', '1', '.', '6', '7', '9', 'e', '-', '0', '5', ']', ',', ' ', '[', '-', '0', '.', '0', '0', '0', '1', '2', '2', '1', '9', ',', ' ', '4', '5', '.', '7', '0', '2', '7', '1', '8', '8', '9', ',', ' ', '0', '.', '0', '0', '0', '1', '2', '5', '2', '7', ']', ',', ' ', '[', '-', '1', '.', '1', '6', '1', 'e', '-', '0', '5', ',', ' ', '0', '.', '0', '0', '0', '1', '3', '0', '8', '3', ',', ' ', '4', '5', '.', '7', '0', '3', '0', '6', '7', '7', '8', ']', ']']]])

有人可以尝试一下并帮助我将其转换为 float 组吗?

最佳答案

您也许可以使用 eval() 将整个字符串转换为实际的列表。 eval() 通常不好用,但在这种情况下它可能是您最好的选择。

您列出的“示例”不正确。您正在列出打印语句和列表理解的结果。作为该列的条目存储的是一个字符串。

您应该能够简单地获取每个项目并将其包装在 eval 中

eval(arr) 

这应该返回一个形状 (3,3) python 列表。从那里您可以根据需要将其转换为 numpy 数组并更改类型。

关于python - 所有字符串列表到 numpy float 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54926281/

相关文章:

python - Theano隐藏层激活函数

jquery - 是否可以在 url jquery 中发送对象

c - 打印无符号数组并退出循环

python - 加快与 Cython 的日期时间比较

python - 保证 numpy.ndarray 的最小维数 (ndim) 的函数

python - 匹配两个表(明细表到小计表),同时识别明细表中不匹配的项目

python - 将函数转换为 Lambda

java - Java 中的字长

python - 如何对 numpy 矩阵中的每个元素执行操作?

python - 在 python 脚本中加载环境模块