0
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 循环中,我通过将字符串转换为浮点数来进行此比较-

x = (data[0::,10].astype(np.float) == i)

这会引发 ValueError:无法将字符串转换为浮点数:

为什么?

4

1 回答 1

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)
于 2013-06-19T15:07:49.280 回答