标签:表格 不能 返回 form gen 创建 字符 决定 类型
今天学习时遇到了genfromtxt函数
world_alcohol = numpy.genfromtxt("world_alcohol.txt",delimiter=",",dtype = str)
Python 3 import numpy
定义输入
genfromtxt唯一的强制参数是数据的来源。它可以是一个对应于一个本地或远程文件的名字字符串,或一个有read方法的file-like对象(如一个实际的文件或StringIO。StringIO对象)。如果参数是一个远程文件的URL,后者在当前目录中自动下载。输入文件可以是一个文本文件或存档,目前,该函数识别gzip和bz2(bzip2)。归档文件的类型是检查文件的扩展:如果文件名以“.gz”结尾”,gzip存档;如果它结尾是“bz2”,bzip2存档。
分割一个固定宽度的文件,列的宽度被定义为一个给定的字符数。在这种情况下,我们需要将分隔符设置成一个整数(如果所有的列有相同的大小)或一个整数序列(如果列可以有不同的大小)。
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参数
当把一行分割成一个字符串序列,序列中的每一项前后的多余空格还存在,可以将autostrip参数设置为true,去掉空格。
comments参数
comments参数是一个字符串,标志着一个注释的开始符号。默认是"#",在转换过程中注释标记可能发生在任何地方。任何字符出现在在注释标记之后会被忽略。
注意:这种行为有一个例外:如果可选的参数names= True,第一行检查到注释行会被认为是名称。
skip_header和skip_footer参数
一个文件的页眉会阻碍文件的处理。在这种情况下,我们需要使用skip_header可选参数。这个参数的值必须是一个整数,跳过文件开头的对应的行数,然后再执行任何其他操作。同样的,我们通过使用skip_footer属性和n的值可以跳过文件的最后n行。默认值都为0.
usercols参数
在某些情况下,我们只对数据中的某些列感兴趣。我们可以使用usecols选择感兴趣的列。这个参数接受一个整数或一个整数序列作为索引。记住,按照惯例,第一列的索引0,-1对应最后一列。如果列有名称,我们也可以将usecols参数设置为他们的名称,或者包含列名称一个字符串序列或逗号分隔的字符串。
dtype参数
我们从文件读取的字符串序列要转换为其他类型数据时需设置dtype参数。默认是float类型。
1.单个类型,如dtype =float。
2.一个序列类型,例如dtype=(int, float, float).
3.一个逗号分隔的字符串,例如dtype="i4,f8,|S3".
4.一个字典包含两个键‘names’和‘formats’
5.一个元组序列,例如dtype = [(‘A‘,int),(‘B‘,float)]
6.一个存在的numpy.dtype对象
7.一个特殊的值None,在这种情况下,每个列的类型有自身数据决定。将参数设置成None效率较低。因为它会从布尔值开始检验,然后是整型,浮点型,复数最后是字符串,直到满足条件为止。
names参数
可以将names参数设置为true并跳过第一行,程序将把第一行作为列名称,即使第一行被注释掉了也会被读取。或可以使用dtype设置名称,也可以重写names,默认的names是none,当names=none时,将有numpy产生一些标准默认的值"f%i",我们可以通过defaultfmt改变默认格式。
data = StringIO("1 2 3\n 4 5 6")
ndtype=[(‘a‘,int), (‘b‘, float), (‘c‘, int)]
names = ["A", "B", "C"]
np.genfromtxt(data, names=names, dtype=ndtype)array([(1, 2.0, 3), (4, 5.0, 6)],
dtype=[(‘A‘, ‘<i8‘), (‘B‘, ‘<f8‘), (‘C‘, ‘<i8‘)])
注意:我们需要记住,只有一些名字没有定义时才会使用defaultfmt
converters参数
当我们希望日期的格式MM/DD/YYYY被转换为一个datetime对象,或一个字符串xx%正确地转换为一个浮点数在0和1之间时,需要使用converters参数定义转换函数。
这个参数的值通常是一个以列索引或列名称作为键和一个转换函数作为值的字典。这些转换函数可以是实际的函数或lambda函数。在任何情况下,他们应该只接受一个字符串作为输入和输出和只有一个想要得到的元素类型。
filling_values参数
出现缺失值时,系统默认填充的值:
Expected type Default
bool False
int -1
float np.nan
complex np.nan+0j
string ‘???‘
我们也可以像missing_values参数自定义设置参数的值。filling_values接受三种类型的值:
- 一个单独的值:所有列的默认值
- 一个序列的值:按照顺序每一项对应相应列。
- 一个字典:字典的值是一个单独的对象。对应的key可以列索引(整数)或列名(字符串)。此外,key=none定义一个默认值的适用于所有列。
除了genfromtxt,numpy.lib.io模块提供了一些来自genfromtxt的便捷功能。这些功能都是以相同的方式工作,但他们有不同的默认值。
标签:表格 不能 返回 form gen 创建 字符 决定 类型
原文地址:https://www.cnblogs.com/Simplelee/p/8975763.html