numpy.loadtxt

numpy.loadtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding='bytes', max_rows=None, *, like=None)[源代码]

从文本文件加载数据。

文本文件中的每一行必须具有相同数量的值。

参数
fname文件、str或pathlib.path

要读取的文件、文件名或生成器。如果文件扩展名是 .gz.bz2 ,首先解压缩文件。注意,生成器应该返回字节字符串。

dtype数据类型,可选

结果数组的数据类型;默认值:float。如果这是结构化数据类型,则生成的数组将是一维的,并且每一行将被解释为数组的元素。在这种情况下,使用的列数必须与数据类型中的字段数匹配。

commentsstr或str序列,可选

用于指示注释开头的字符或字符列表。没有意味着没有评论。为了向后兼容,字节字符串将被解码为“latin1”。默认值为“”。

delimiter可选的STR

用于分隔值的字符串。为了向后兼容,字节字符串将被解码为“latin1”。默认值是空白。

converters可选的

将列号映射到将列字符串解析为所需值的函数的字典。例如,如果第0列是日期字符串: converters = {{0: datestr2num}} . 转换器还可用于为丢失的数据提供默认值(另请参见 genfromtxt ): converters = {{3: lambda s: float(s.strip() or 0)}} . 默认值:没有。

skiprows可选的

跳过第一 skiprows 行,包括注释;默认值:0。

usecolsint或sequence,可选

要读取哪些列,其中0是第一列。例如, usecols = (1,4,5) 将提取第2列、第5列和第6列。默认值none将导致读取所有列。

在 1.11.0 版更改: 当必须读取单列时,可以使用整数而不是元组。例如 usecols = 3 阅读第四列的方式与 usecols = (3,) 会。

unpack可选的布尔

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

ndmin可选的

返回的数组将至少具有 ndmin 尺寸。否则,将压缩一维轴。合法值:0(默认)、1或2。

1.6.0 新版功能.

encoding可选的STR

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

1.14.0 新版功能.

max_rows可选的

max_rows 之后的内容行 skiprows 线。默认值是读取所有行。

1.16.0 新版功能.

likearray_like

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

注解

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

1.20.0 新版功能.

返回
out恩达雷

从文本文件读取的数据。

参见

load, fromstring, fromregex
genfromtxt

加载缺少按指定处理的值的数据。

scipy.io.loadmat

读取matlab数据文件

笔记

此函数旨在快速读取简单格式化的文件。这个 genfromtxt 函数提供了更复杂的处理,例如,缺少值的行。

1.10.0 新版功能.

python float.hex方法生成的字符串可以用作float的输入。

实例

>>> from io import StringIO   # StringIO behaves like a file object
>>> c = StringIO("0 1\n2 3")
>>> np.loadtxt(c)
array([[0., 1.],
       [2., 3.]])
>>> d = StringIO("M 21 72\nF 35 58")
>>> np.loadtxt(d, dtype={'names': ('gender', 'age', 'weight'),
...                      'formats': ('S1', 'i4', 'f4')})
array([(b'M', 21, 72.), (b'F', 35, 58.)],
      dtype=[('gender', 'S1'), ('age', '<i4'), ('weight', '<f4')])
>>> c = StringIO("1,0,2\n3,0,4")
>>> x, y = np.loadtxt(c, delimiter=',', usecols=(0, 2), unpack=True)
>>> x
array([1., 3.])
>>> y
array([2., 4.])

这个例子展示了 converters 可用于将带有尾随减号的字段转换为负数。

>>> s = StringIO('10.01 31.25-\n19.22 64.31\n17.57- 63.94')
>>> def conv(fld):
...     return -float(fld[:-1]) if fld.endswith(b'-') else float(fld)
...
>>> np.loadtxt(s, converters={0: conv, 1: conv})
array([[ 10.01, -31.25],
       [ 19.22,  64.31],
       [-17.57,  63.94]])