NumPy教程-numpy.loadtxt()在Python中的使用

Python的numpy模块提供了一个函数用于从文本文件中加载数据。numpy模块提供了loadtxt()函数,用于快速读取简单的文本文件。
注意:在文本文件中,每一行必须具有相同数量的值。
语法
numpy.loadtxt(fname, dtype=<type 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0)
参数
以下是numpy中loadtxt()函数中的参数:
fname: file、str或pathlib.Path
此参数定义要读取的文件、文件名或生成器。首先,我们将分解文件,如果文件名扩展名为.gz和.bz2。然后,生成器将返回Python 3k的字节字符串。
dtype: 数据类型(可选)
此参数定义结果数组的数据类型,默认情况下,数据类型将为float。当结果数组是结构化数据类型时,它将是1维的。每一行被解释为一个数组元素,使用的列数必须与数据类型中的字段数匹配。
comments: str或序列(可选)
此参数定义用于指示注释开始的字符或字符列表。默认情况下,它将是“#”。
delimiter: str(可选)
此参数定义用于分隔值的字符串。默认情况下,它将是任何空白字符。
converters: 字典(可选)
此参数定义一个将列号映射到将映射的列转换为浮点数的函数的字典。当column()是日期字符串时,使用converters={0:datestr2num}。此参数还用于为缺失数据提供默认值,如converters= {3: lambda s: float(s.strip() or 0)}。
skiprows: int(可选)
此参数用于跳过前面的'skiprows'行,默认情况下为0。
usecols: int或序列(可选)
此参数定义要读取的列,其中0为第一列。例如,usecols=(0, 3, 5)将提取第1、第4和第5列。默认情况下,其值为None,表示读取所有列。在新版本中,如果要读取单个列,可以使用整数代替元组。
unpack: bool(可选)
如果将此参数设置为true,则返回的数组将被转置,因此可以使用x, y, z =loadtxt(...)来解包参数。使用结构化数据类型时,对于每个字段都会返回数组。默认情况下,它将被设置为False。
ndmin: int(可选)
返回的数组将具有'ndmin'维度。否则,它将挤压单维轴。合法值:0(默认)、1或2。
返回值:out(ndarray)
它从文本文件中读取数据,以ndarray的形式返回。
示例1:
import numpy as np
from io import StringIO
c = StringIO(u"0 1\n2 3")
c
np.loadtxt(c)
输出:
<_io.StringIO object at 0x000000000A4C3E48>
array([[0., 1.],
[2., 3.]])
在上面的代码中
- 我们使用别名np导入了numpy。
- 我们还从io中导入StringIO。
- 我们声明了变量'c'并将其赋值为StringIO()函数的返回值。
- 我们将Unicode数据传递给函数。
- 最后,我们尝试打印np.loadtxt()的返回值,其中我们传递了文件名或文件。
在输出中,它以ndarray的形式显示了文件的内容。
示例2:
import numpy as np
from io import StringIO
d = StringIO(u"M 21 72\nF 35 58")
np.loadtxt(d, dtype={'names': ('gender', 'age', 'weight'),'formats': ('S1', 'i4', 'f4')})
输出:
array([('M', 21, 72.), ('F', 35, 58.)], dtype=[('gender', 'S1'), ('age', '<i4'), ('weight', '<f4')])
示例3:
import numpy as np
from io import StringIO
c = StringIO(u"1,3,2\n3,5,4")
x, y = np.loadtxt(c, delimiter=',', usecols=(0, 2), unpack=True)
x
y
输出:
array([1., 3.])
array([2., 4.])
在上面的代码中
- 我们使用别名np导入了numpy。
- 我们还从io中导入StringIO。
- 我们声明了变量'c'并将其赋值为StringIO()函数的返回值。
- 我们将Unicode数据传递给函数。
- 最后,我们尝试打印np.loadtxt()的返回值,其中我们传递了文件名或文件,设置了分隔符、usecols和unpack为True。
在输出中,显示了以ndarray形式显示的文件内容。