numpy.genfromtxt

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 线条在 delimiter 字符和后面的字符 comments 字符被丢弃。

参数
fname文件,str,pathlib.path,str列表,生成器

要读取的文件、文件名、列表或生成器。如果文件扩展名是 gzbz2 ,首先解压缩文件。注意,生成器必须返回字节字符串。列表中的字符串或生成器生成的字符串被视为行。

dtype可选类型

结果数组的数据类型。如果没有,则数据类型将由每列的内容单独确定。

comments可选的STR

用于指示注释开头的字符。注释被丢弃后一行中出现的所有字符

delimiterstr、int或sequence,可选

用于分隔值的字符串。默认情况下,任何连续的空格都充当分隔符。整数或整数序列也可以作为每个字段的宽度提供。

skiprows可选的

skiprows 在numpy 1.10中移除。请使用 skip_header 相反。

skip_header可选的

在文件开头要跳过的行数。

skip_footer可选的

文件结尾处要跳过的行数。

converters变量,可选

将列的数据转换为值的一组函数。转换器还可用于为缺少的数据提供默认值: converters = {{3: lambda s: float(s or 0)}} .

missing变量,可选

missing 在numpy 1.10中移除。请使用 missing_values 相反。

missing_values变量,可选

与丢失数据相对应的字符串集。

filling_values变量,可选

当数据丢失时用作默认值的一组值。

usecols序列,可选

要读取哪些列,其中0是第一列。例如, usecols = (1, 4, 5) 将提取第2列、第5列和第6列。

names无,真,str,序列,可选

如果 names 为真,字段名从第一行后的第一行读取 skip_header 线。此行可以选择由注释分隔符继续。如果 names 是由逗号分隔的名称组成的序列或单个字符串,这些名称将用于定义结构化数据类型中的字段名称。如果 names 如果为“无”,则将使用数据类型字段的名称(如果有)。

excludelist序列,可选

要排除的名称列表。此列表将附加到默认列表中 ['返回'、'文件'、'打印'] . 排除的名称后加下划线:例如, file 将成为 file_ .

deletechars可选的STR

组合无效字符的字符串,必须从名称中删除这些字符。

defaultfmt可选的STR

用于定义默认字段名的格式,如“f%i”或“f_02i”。

autostrip可选的布尔

是否自动从变量中删除空白。

replace_space可选的字符

用于替换变量名称中的空格的字符。默认情况下,使用“uu”。

case_sensitive真、假、“上”、“下”,可选

如果为true,则字段名区分大小写。如果为false或“upper”,则字段名将转换为大写。如果为“Lower”,则字段名将转换为小写。

unpack可选的布尔

如果为true,则返回的数组将被转置,以便可以使用 x, y, z = genfromtxt(...) . 当与结构化数据类型一起使用时,将为每个字段返回数组。默认值为False。

usemask可选的布尔

如果为真,则返回一个屏蔽数组。如果为false,则返回正则数组。

loose可选的布尔

如果为true,则不要对无效值引发错误。

invalid_raise可选的布尔

如果为true,则在检测到列数不一致时引发异常。如果为false,将发出警告并跳过违规行。

max_rows可选的

要读取的最大行数。不能同时与skip_footer一起使用。如果给定,值必须至少为1。默认值是读取整个文件。

1.10.0 新版功能.

encoding可选的STR

用于解码输入文件的编码。不适用于 fname 是文件对象。特殊值“bytes”启用了向后兼容性解决方案,确保在可能的情况下接收字节数组,并将Latin1编码的字符串传递给转换器。重写此值以接收Unicode数组并将字符串作为输入传递给转换器。如果设置为无,则使用系统默认值。默认值为“字节”。

1.14.0 新版功能.

likearray_like

引用对象以允许创建非NumPy数组的数组。如果像这样的数组传入为 like 支持 __array_function__ 协议,结果将由它定义。在这种情况下,它确保创建与通过此参数传入的对象兼容的数组对象。

注解

这个 like 关键字是一个实验性的特性,有待接受 NEP 35 .

1.20.0 新版功能.

返回
out恩达雷

从文本文件读取的数据。如果 usemask 为真,这是一个屏蔽数组。

参见

numpy.loadtxt

无数据丢失时的等效函数。

笔记

  • 如果使用空格作为分隔符,或者没有将分隔符作为输入,则两个字段之间不应缺少任何数据。

  • 当变量命名时(通过灵活的数据类型或 names ),文件中不能有任何头(否则会引发ValueError异常)。

  • 默认情况下,单个值不会从空格中删除。使用自定义转换器时,请确保该函数确实删除了空格。

工具书类

1

numpy用户指南,章节 I/O with NumPy .

实例

>>> from io import StringIO
>>> import numpy as np

带有混合数据类型的逗号分隔文件

>>> s = StringIO(u"1,1.3,abcde")
>>> data = np.genfromtxt(s, dtype=[('myint','i8'),('myfloat','f8'),
... ('mystring','S5')], delimiter=",")
>>> data
array((1, 1.3, b'abcde'),
      dtype=[('myint', '<i8'), ('myfloat', '<f8'), ('mystring', 'S5')])

使用dtype=none

>>> _ = s.seek(0) # needed for StringIO example only
>>> data = np.genfromtxt(s, dtype=None,
... names = ['myint','myfloat','mystring'], delimiter=",")
>>> data
array((1, 1.3, b'abcde'),
      dtype=[('myint', '<i8'), ('myfloat', '<f8'), ('mystring', 'S5')])

指定数据类型和名称

>>> _ = s.seek(0)
>>> data = np.genfromtxt(s, dtype="i8,f8,S5",
... names=['myint','myfloat','mystring'], delimiter=",")
>>> data
array((1, 1.3, b'abcde'),
      dtype=[('myint', '<i8'), ('myfloat', '<f8'), ('mystring', 'S5')])

具有固定宽度列的示例

>>> s = StringIO(u"11.3abcde")
>>> data = np.genfromtxt(s, dtype=None, names=['intvar','fltvar','strvar'],
...     delimiter=[1,3,5])
>>> data
array((1, 1.3, b'abcde'),
      dtype=[('intvar', '<i8'), ('fltvar', '<f8'), ('strvar', 'S5')])

显示注释的示例

>>> f = StringIO('''
... text,# of chars
... hello world,11
... numpy,5''')
>>> np.genfromtxt(f, dtype='S12,S12', delimiter=',')
array([(b'text', b''), (b'hello world', b'11'), (b'numpy', b'5')],
  dtype=[('f0', 'S12'), ('f1', 'S12')])