import numpy as np
我有这个numpy数组:
data = np.array(data)
# assume it has x number of rows and y columns
1)在某一点上,我用字符串值替换第10列值:
data[data[0::,10] == "C",10] = "0"
2)在索引 i 的for循环中,我通过将字符串转换为float来进行此比较 -
x = (data[0::,10].astype(np.float) == i)
这会抛出一个ValueError:无法将字符串转换为float:
为什么?
答案 0 :(得分:1)
从您的错误消息中,您尝试转换的列中有一些''
(空字符串)。
确保您要比较的列只有可转换为浮点数的字符串。您可以创建一个isfloat()
函数来为您执行此操作:
def isfloat(x):
try:
float(x)
return True
except:
return False
isfloat = np.vectorize(isfloat)
然后在你的例子中使用:
data[ data[:,col] == 'C', col ] = '0'
x = (data[ isfloat(data[:,col]), col ].astype(np.float) == i)