将numpy字符串数组转换为int数组

2024-05-02 16:29:20 发布

您现在位置:Python中文网/ 问答频道 /正文


我有一个裸体

a = [['-0.99' '' '0.56' ..., '0.56' '-2.02' '-0.96']]

如何将其转换为int?

输出:

a = [[-0.99 0.0 0.56 ..., 0.56 -2.02 -0.96]]

我要用0.0代替空白''


Tags: 空白int裸体
2条回答
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)

结果是:

[[-0.99  0.    0.56  0.56 -2.02 -0.96]]

你的值是浮点数,不是整数。不清楚您是否希望列表列表或numpy数组作为最终结果。您可以很容易地获得如下列表:

a = a.tolist()

结果:

[[-0.99, 0.0, 0.56, 0.56, -2.02, -0.96]]

这是一个纯python解决方案,它产生一个list

通过简单的python操作,可以用float映射内部列表。它将把所有字符串元素转换为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]]

更新:尝试以下操作

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]]

它枚举列表中的对象并尝试将它们解析为float,如果失败,则用0.0替换它

相关问题 更多 >