鸢尾花数据读取的总结
1、手写最基本读取 f = open('8.iris.data','r',encoding='utf-8') x = [] y = [] for d in f: d = d.strip() if not d: continue d = d.split(',') x.append(list(map(float,d[:2]))) y.append((d[-1])) y = np.array(list(map(iris_type,y))) x = np.array(x)
2、使用python自带库csv x = [] y = [] f = open('8.iris.data', 'r', encoding='utf-8') d = csv.reader(f) for line in d: if not d: continue x.append(list(map(float, line[:2]))) y.append(line[-1]) y = np.array(list(map(iris_type, y))) x = np.array(x)
3、使用numpy的方法读入 data = np.loadtxt('8.iris.data', converters={4: iris_type},dtype=float, delimiter=',',encoding='utf-8') print(type(data)) x, y = np.split(data, (4,), axis=1) x = x[:, :2] print(x) print(y.shape) print(y.ravel().shape) #split返回的y的shape是(150, 1),但是训练时的函数fit用的y是(150,),所以需要拉平y.ravel()
#4、使用pandas的方法读入 data = pd.read_csv('8.iris.data',converters={4: iris_type},header=None) x = data.loc[:,:1].values y = data.loc[:,4].values print(x.shape) print(y.shape)