diff --git a/function.py b/function.py index d7cf809..ef32e8e 100644 --- a/function.py +++ b/function.py @@ -82,10 +82,22 @@ def load_data(filepath): - np.array: 特征数据。 - np.array: 标签数据。 """ - data = np.loadtxt(filepath, delimiter=',', dtype=float) - X = data[:, :-1] # 特征数据 - y = data[:, -1] # 标签数据 - return X, y + data = [] + labels = [] + + with open(filepath, 'r') as f: + for line in f: + # 替换缺失值标识符,并将其分割为列表 + values = line.strip().replace('?', '0').split() # 这里将 ? 替换为 0 + # 转换为 float,注意这里需要处理转换异常 + try: + values = [float(v) for v in values] # 转换为 float + data.append(values[:-1]) # 特征数据 + labels.append(values[-1]) # 标签数据 + except ValueError: + continue # 跳过无法转换的行 + + return np.array(data), np.array(labels) if __name__ == "__main__": # 以下代码可用于测试,可自行随意修改