【发布时间】:2017-06-30 16:50:00
【问题描述】:
我正在运行 python 3.5 并尝试将一大串字符串转换为 numpy 数组。
我使用answer from stack overflow 将这段代码放在一起。
import ast
import numpy as np
str = '["8.4","4.3E-7"]'
arr = ast.literal_eval(str)
x = np.array(arr, dtype='|S4')
y = x.astype(np.float32)
我收到以下值错误
ValueError: could not convert string to float: '4.3E'
str 是一个示例字符串,大多数数字没有 E-something 模式,但偶尔会发生这种情况,我的代码会挂起。
在这种情况下有没有办法将字符串转换为 numpy 数组?
【问题讨论】:
-
|S4的最大长度为 4 个字符。你没有给足够的空间。 -
不过,您根本不需要指定 dtype。将为您推断。 (我会去编辑其他答案以澄清事情。)
-
@user2357112 如果您只是发布答案,我将能够正式接受。不过感谢您的回答...事实证明,从这个社区可以学到很多东西:)
标签: python arrays string python-3.x numpy