NumPy numpy.loadtxt()的用法
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: 文件,字符串或路径
此参数定义要读取的文件、文件名或生成器。首先,如果文件名的扩展名是 .gz 和 .bz2 ,则我们将分解文件。之后,生成器将返回 Python 3k的字节字符串。
dtype: 数据类型(可选)
此参数定义结果数组的数据类型,默认为float类型。当数据类型为结构化类型时,结果数组将是一维的。每行都被解释为一个数组元素,使用的列数必须与数据类型中的字段数匹配。
comments: 字符串或序列(可选)
此参数定义用于指示注释开始的字符或字符列表。默认情况下,为 # 。
delimiter: 字符串(可选)
此参数定义用于分隔值的字符串。默认情况下,为任意的空白字符。
converters: 字典(可选)
此参数定义将列号映射为将映射列转换为float类型的函数的字典。当column()是一个日期字符串时,使用 converters={0:datestr2num} 。此参数还用于为缺失数据提供默认值,例如 converters={3: lambda s: float(s.strip() or 0)} 。
skiprows: 整数(可选)
此参数用于跳过前面的’skiprows’行,默认为0。
usecols: 整数或序列(可选)
此参数定义要读取的列,其中0表示第一列。例如,usecols=(0, 3, 5)将提取第1、第4和第5列。默认情况下,其值为None,表示读取所有列。在新版本中,如果要读取单个列,可以使用整数而不是元组。
unpack: 布尔值(可选)
如果此参数设置为true,则返回的数组将被转置,以便可以使用 x, y, z =loadtxt(…) 解包参数。当与结构化数据类型一起使用时,将为每个字段返回数组。默认情况下,它设置为False。
ndim: 整数(可选)
返回的数组将具有’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的形式显示出来。