【发布时间】:2019-02-28 12:56:14
【问题描述】:
我正在从 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 浮点数组。但它给出了以下错误。
ValueError:无法将字符串转换为浮点数:
当我搜索根本原因时,我发现这个列表是完全字符串格式的。 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 浮点数组?
编辑
加载时,数据框采用以下格式。 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', ']', ']']]])
有人可以试一试并帮我将其转换为浮点数组。
【问题讨论】:
-
该列表实际上是否命名为
list?这是一个很大的禁忌 -
@CharlesLandau 不,
type(arr)产生<type 'str'> -
拥有变量
list是不允许的部分。list已经是一个 Python 对象 -
根据您所放置的内容,您实际上有一个 python 列表的字符串表示形式。所以你真正拥有的是 "[[45.70345721, -0.00014686, -1.679e-05], [-0.00012219, 45.70271889, 0.00012527], [-1.161e-05, 0.00013083, 45.70306778]]" 注意引号。
-
@bravosierra99 的评论很可能是真的。