作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 Numpy 二维数组,其中一列具有 bool 值,即 True
/False
。我想将它分别转换为整数1
和0
,我该怎么做?
例如我的 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/
我是一名优秀的程序员,十分优秀!