python中有一个很好用的库,是numpy。大部分的时候,我们都会使用

import numpy as np

在进行机器学习过程中,都需要读取数据,但自己经常会忘记里面的参数,每次都要查,比较麻烦,所以自己记录一下。

np.loadtxt()适合.txt文件和.csv文件。但是它默认读取float类型的值。如果遇到float和字符串类型都有的值。它会报出错误
ValueError: could not convert string to float

那么这种情况下,你有两种做法:

第一种:写一个转换函数
比如:鸢尾花数据集
前面四个是float类型,最后一个是字符串类型的。这里可以写一个转换函数

def iris_type(s):
  it = {'Iris-setosa': 0, 'Iris-versicolor': 1, 'Iris-virginica': 2}
  return it[s]

读取的时候这样读

data = np.loadtxt(path, dtype=float, delimiter=',', converters={4: iris_type})

这样就可以避过这个问题
那么如果不同的字符串太多,根本不能像转换函数那样一一列出,那应该怎么办呢?
那就要用到下一种方法。参照我下一篇博客
pd.read_csv()的用法

好了,现在介绍一下numpy库里面的loadtxt()函数里面的一些参数
loadtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0)

fname要读取的文件、文件名、或生成器。
dtype数据类型,默认float。
comments注释。
delimiter分隔符,默认是空格。
skiprows跳过前几行读取,默认是0,必须是int整型。
usecols:要读取哪些列,0是第一列。例如,usecols = (1,4,5)将提取第2,第5和第6列。默认读取所有列。
unpack如果为True,将分列读取。

numpy的dtype类型:
默认float
字符串类型:str