我有一个numpy.ndarray
a = [['-0.99' '' '0.56' ..., '0.56' '-2.02' '-0.96']]
Run Code Online (Sandbox Code Playgroud)
如何将其转换为int?
输出:
a = [[-0.99 0.0 0.56 ..., 0.56 -2.02 -0.96]]
Run Code Online (Sandbox Code Playgroud)
我想要0.0代替空白''
import numpy as np
a = np.array([['-0.99', '', '0.56', '0.56', '-2.02', '-0.96']])
a[a == ''] = 0.0
a = a.astype(np.float)
Run Code Online (Sandbox Code Playgroud)
结果是:
[[-0.99 0. 0.56 0.56 -2.02 -0.96]]
Run Code Online (Sandbox Code Playgroud)
你的值是浮点数,而不是整数.目前尚不清楚是否需要列表或numpy数组作为最终结果.您可以轻松获得如下列表:
a = a.tolist()
Run Code Online (Sandbox Code Playgroud)
结果:
[[-0.99, 0.0, 0.56, 0.56, -2.02, -0.96]]
Run Code Online (Sandbox Code Playgroud)
这是一个纯 python 解决方案,它生成一个list
.
通过简单的Python操作,你可以用float映射内部列表。这会将所有字符串元素转换为浮点数并将其指定为列表的零索引项。
a = [['-0.99' , '0.56' , '0.56' , '0.56', '-2.02' , '-0.96']]
a[0] = map(float, a[0])
print a
[[-0.99, 0.56, 0.56, 0.56, -2.02, -0.96]]
Run Code Online (Sandbox Code Playgroud)
更新:尝试以下操作
a = [['-0.99' , '0.56' , '0.56' , '0.56', '-2.02' , '-0.96', '', 'nan']]
for _position, _value in enumerate(a[0]):
try:
_new_value = float(_value)
except ValueError:
_new_value = 0.0
a[0][_position] = _new_value
[[-0.99, 0.56, 0.56, 0.56, -2.02, -0.96, 0.0, nan]]
Run Code Online (Sandbox Code Playgroud)
它枚举列表中的对象并尝试将它们解析为float
,如果失败,则将其替换为0.0