gpt4 book ai didi

python - 如何在python中从 bool 数组转换为int数组

转载 作者:太空狗 更新时间:2023-10-29 19:36:01 26 4
gpt4 key购买 nike

我有一个 Numpy 二维数组,其中一列具有 bool 值,即 True/False。我想将它分别转换为整数10,我该怎么做?

例如我的 data[0::,2] 是 bool 值,我试过了

data[0::,2]=int(data[0::,2])

,但它给我错误:

类型错误:只有长度为 1 的数组可以转换为 Python 标量

我的前 5 行数组是:

[['0', '3', 'True', '22', '1', '0', '7.25', '0'],
['1', '1', 'False', '38', '1', '0', '71.2833', '1'],
['1', '3', 'False', '26', '0', '0', '7.925', '0'],
['1', '1', 'False', '35', '1', '0', '53.1', '0'],
['0', '3', 'True', '35', '0', '0', '8.05', '0']]

最佳答案

好的,将任何数组的类型更改为浮点型的最简单方法是:

data.astype( float )

您的数组的问题是 float('True') 是一个错误,因为 'True' 无法解析为 float 。因此,最好的办法是修复数组生成代码以生成 float (或者至少是具有有效浮点文字的字符串)而不是 bool 值。

同时你可以使用这个函数来修复你的数组:

def boolstr_to_floatstr(v):
if v == 'True':
return '1'
elif v == 'False':
return '0'
else:
return v

最后你像这样转换你的数组:

new_data = np.vectorize(boolstr_to_floatstr)(data).astype(float)

关于python - 如何在python中从 bool 数组转换为int数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16869990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com