Python科学计算——Numpy.genfromtxt

时间:2022-09-11 16:23:20

今天在kaggle上看到一个很好的数据集,想亲自进行处理,但是在将.csv格式文件转化为数据矩阵时就出现了问题,我在谷歌上查了下,发现了个很好用的东西和大家分享。那就是Numpy包里的genfromtxt。它可以很轻松的实现上述功能。

此函数的完整形式为:

numpy.genfromtxt(fname, dtype=<type 'float'>, comments='#', delimiter=None, skip_header=0, skip_footer=0, converters=None, missing_values=None, filling_values=None, usecols=None, names=None, excludelist=None, deletechars=None, replace_space='_', autostrip=False, case_sensitive=True, defaultfmt='f%i', unpack=None, usemask=False, loose=True, invalid_raise=True, max_rows=None)[source]¶

 今天先介绍几个一定会用到的属性:

1.fname,顾名思义,就是文件名,不详述

2.delimiter:str,int,or sequence,optional.他是分割值,即表示你的数组用什么来分割。

3.usecols,即选择读哪几行,在讲文件读入代码的时候,我们通常是将属性集读为一个数组,此时它就派上用场了

4.dtype,表明改行类型

如果你还有必要知道它的其他的参数,你可以参考它的官方文档

为了让描述更加形象化,我们引入一个数据集,下载,或者直接运行下列代码即可

import urllib2
url = 'http://aima.cs.berkeley.edu/data/iris.csv'
u = urllib2.urlopen(url)
localFile = open('iris.csv'', 'w')
localFile.write(u.read())
localFile.close()

运行这段代码,代码非常简单,我是直接从网上拷贝的,这里不做详述。你当前文件夹下就会生成一个iris.csv文件

那现在我们如何讲该数据集导入程序呢?就就要用到我们介绍的这个库了

from numpy import genfromtxt,zeros
data=genfromtxt('iris.csv',delimiter=',',usecols=(0,1,2,3))
target=genfromtxt('iris.csv',delimiter=',',usecols=(4),dtype=str)

 好了,这样我们就导入成功了