当调用filter函数时,控制台报错--float() argument must be a string or a number, not 'map'”
调用代码:
file_data = pd.read_csv('housing.data', header=None)
# a = np.array([float(s) for s in str if s != ''])
data = np.empty((len(file_data), 14))
for i, d in enumerate(file_data.values):
d = map(float, filter(not_empty, d[0].split(' ')))
data[i] = d
x, y = np.split(data, (13, ), axis=1)
解决办法:
将获取到的map值放入list列表中,然后再使用
d = list(map(float, filter(not_empty, d[0].split(' '))))
data[i] = d
不再报错