官方文档https://numpy.org/doc/stable/reference/generated/numpy.genfromtxt.html
参考http://www.360doc.com/content/19/0719/08/7669533_849694998.shtml
numpy.genfromtxt(fname, dtype=<class'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="!#$%&'()*+, -./:;<=>?@[\\]^{|}~", replace_space='_', autostrip=False, case_sensitive=True, defaultfmt='f%i', unpack=None, usemask=False, loose=True, invalid_raise=True, max_rows=None, encoding='bytes', *, like=None)
从文本文件加载数据,并按指定处理缺失值。 第一个skip_header 行之后的每一行在分隔符处被分割,并且指定注释字符之后的字符被注释。
参数:
fname:文件、str、pathlib.Path、str 列表、生成器 要读取的文件、文件名、列表或生成器。如果文件扩展名为 gz 或 bz2,则首先解压缩文件。请注意,生成器必须返回字节字符串。列表中的字符串或由生成器生成的字符串被视为行。
dtype:可选。结果数组的数据类型。我们从文件读取的字符串序列要转换为其他类型数据时需设置dtype参数。
1)默认是float类型。
2)可设置为序列类型,如dtype=(int, float, float);
3)元组序列,如dtype=[('a',int),('b',float)];
4)设置为dtype=None,则每个列的类型由自身数据决定,将参数设置成None效率较低,因为它会从布尔值开始检验,然后是整形浮点型复数最后是字符串,直到满足条件为止。
comments:是个字符串,可选,标志着注释开始的符号。默认是“#”,任何字符出现在注释标记之后会被忽略。
delimiter: 指定分隔符,将行分割为列,也可以按给定的字符数对宽度进行分割。分割固定宽度的文件,列的宽度被定义为一个给定的字符数。在这种情况下,我们需要将分隔符设置成一个整数(如果所有的列有相同的大小)或一个整数序列(如果列可以有不同的大小)。
skip_header和skip_footer: 一个文件的页眉会阻碍文件的处理。在这种情况下,我们需要使用skip_header可选参数。这个参数的值必须是一个整数,跳过文件开头的对应的行数,然后再执行任何其他操作。同样的,我们通过使用skip_footer属性和n的值可以跳过文件的最后n行。默认值都为0.