一般导数csv文件有三种方法,这里仅介绍一种numpy里的loadtxt方法的方式
1.导包
import numpy as np
2.导入路径
path = "D:\downlond\iris_data.csv"
3.用loadtxt方法提取文件数据
data = np.loadtxt(path, dtype=float, delimiter=',', converters={4: iris_type})
这里注意,loadtxt里,第一个参数为路径,后边的参数均为默认参数的形式,每个参数都有其功能,使用的时候传相应的值即可,参数有下面这些:
def loadtxt(fname, dtype=float, comments='#', delimiter=None,
converters=None, skiprows=0, usecols=None, unpack=False,
ndmin=0, encoding='bytes', max_rows=None):
功能如下:
参数名 | 功能 |
---|---|
fname | 被读取的文件名(文件的相对地址或者绝对地址) |
dtype | 指定读取后数据的数据类型 |
comments | 跳过文件中指定参数开头的行(即不读取) |
delimiter | 指定读取文件中数据的分割符 |
converters | 对读取的数据进行预处理 |
skiprows | 选择跳过的行数 |
usecols | 指定需要读取的列 |
unpack | 选择是否将数据进行向量输出 |
encoding | 对读取的文件进行预编码 |
特别注意converters:
converters:该参数是将某一列的数据进行函数预处理再获取,格式为:{列号:函数},可以看成一个字典形式,对列上的所有数据进行函数处理
converters处理案例:
converters={4: iris_type} #把第四列按照 iris_type的方式都处理了
def iris_type(s):
it = {'setosa': 0, 'versicolor': 1 , b'virginica': 2}
return it[s]
#每一个传入的s,都会作为key值到it这个字典里,得到对应的value,也就是传入setosa会返回0
参数的详细内容见
https://blog.csdn.net/ACID_lv_ing/article/details/87092714