Numpy学习笔记

来源:互联网 发布:上瘾网络剧拍摄花絮5 编辑:程序博客网 时间:2024/06/07 09:08

numpy.genfromtxt笔记

(测试文件里的数据排列类型最好是有规律的,不可以随便,否则将发生一些错误)
 
genfromtxt函数
- genfromtxt函数创建数组表格数据
- genfromtxt主要执行两个循环运算。第一个循环将文件的每一行转换成字符串序列。第二个循环将每个字符串序列转换为相应的数据类型。
- genfromtxt能够考虑缺失的数据,但其他更快和更简单的函数像loadtxt不能考虑缺失值。

尤其要注意各个参数的使用搭配,不可以胡乱使用
import numpy
numbers = numpy.genfromtxt("***.txt",delimiter=",",dtype=str,skip_header=1,autostrip=True,comments="#",names=Ture,usercols=(0,-1),\
                                                                                                                  converters={})
array_1 = numbersp[,] #可以读取相应的数据,参考切片
“***.txt”
genfromtxt的打开文件,当将要打开的对象和程序不在同一个文件夹下时需要写出绝对路径。

delimiter=","
     - genfromtxt分割每个非空行成一个字符串序列。空的行或注释行跳过。
     - 分割符并不局限于单个字符,任何字符串就可以了。
     - 分割一个固定宽度的文件,列的宽度被定义为一个给定的字符数。在这种情况下,我们需要将分隔符设置成一个整数(如果所有的列有相同的大小)或一个整数序列(如果列可以有不同的大小)。

dtype=str
我们从文件读取的字符串序列要转换为其他类型数据时需设置dtype参数。默认是float类型。一个特殊的值None,在这种情况下,每个列的类型有自身数据决定。将参数设置成None效率较低。因为它会从布尔值开始检验,然后是整型,浮点型,复数最后是字符串,直到满足条件为止。
>>> data = "123456789\n  4  7 9\n  4567 9"
>>> np.genfromtxt(StringIO(data), delimiter=(4, 3, 2))
array([[ 1234.,  567.,    89.],      [    4.,    7.,    9.],      [    4.,  567.,    9.]])

autostrip=True
当把一行分割成一个字符串序列,序列中的每一项前后的多余空格还存在,可以将autostrip参数设置为True(注意首字母要大写,小写将报错),去掉空格。

comments="#"
comments参数是一个字符串,标志着一个注释的开始符号。默认是"#",在转换过程中注释标记可能发生在任何地方。任何字符出现在在注释标记之后会被忽略。注意当可选的参数names= True,第一行检查到注释行会被认为是列的名称。

names=True
可以将names参数设置为True并跳过第一行,程序将把第一行作为列名称,即使第一行被注释掉了也会被读取。或可以使用dtype设置名称,也可以重写names,默认的names是none,当names=none时,将有numpy产生一些标准默认的值"f%i",我们可以通过defaultfmt改变默认格式。

 skip_header和skip_footer
一个文件的页眉可能会阻碍文件的处理。在这种情况下,我们需要使用skip_header可选参数。这个参数的值必须是一个整数,跳过文件开头的对应的行数,然后再执行任何其他操作。同样的,我们通过使用skip_footer属性和n的值可以跳过文件的最后n行。默认值都为0.

usercols=(0,-1)
这个参数接受一个整数或一个整数序列作为索引。第一列的索引0,-1对应最后一列。如果列有名称,我们也可以将usecols参数设置为他们的名称,或者包含列名称一个字符串序列或逗号分隔的字符串。也可以使用切片读取:[:,:](取所有行,所有列),这种方法更加灵活。

-converters={}
这个参数的值通常是一个以列索引或列名称作为键和一个转换函数作为值的字典。这些转换函数可以是实际的函数或lambda函数。在任何情况下,他们应该只接受一个字符串作为输入和输出和只有一个想要得到的元素类型。

参数解释参考:http://blog.csdn.net/chang_yuan_2011/article/details/21300443



原创粉丝点击