numpy.loadtxt()方法
先来看一下示例CSV数据:
X,Y,NAME,CLASS,AQI
120.7512427,30.75084798,嘉兴市,0XFF83,24
120.0830671,30.89524644,湖州市,0XFF83,80
120.574379,30.00700998,绍兴市,0XFF83,140
122.202972,29.98754304,舟山市,0XFF83,165
121.546246,29.87620299,宁波市,0XFF83,86
119.642848,29.08127199,金华市,0XFF83,184
118.869413,28.93892703,衢州市,0XFF83,72
121.416636,28.65889302,台州市,0XFF83,38
119.912514,28.455276,丽水市,0XFF83,49
120.695457,27.99819198,温州市,0XFF83,127
103.71468,27.341637,昭通市,0XFF83,23
简单读取
# -*- coding=utf-8 -*-
import numpy as np
import csv
p = r'D:\Test\web\ol4test\data\city_aic.csv'
with open(p,encoding = 'utf-8') as f:
data = np.loadtxt(f,delimiter = ",")
print(data[:5])
这样直接读取的结果是,报错: ValueError: could not convert string to float: ‘X’
字符串处理-str参数
原因是,默认情况下,数据被认为是float类型,因此,在上面读取csv文件第1行时,遇到’X’,尝试进行数据类型转换,转换失败报错。
经查可以使用str参数,让方法读取数据时,支持str类型。
with open(p,encoding = 'utf-8') as f:
data = np.loadtxt(f,str,delimiter = ",")