当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NumPy loadtxt方法用法及代码示例


NumPy 的 loadtxt(~) 方法读取文本文件,并将其内容解析为 NumPy 数组。

参数

1. fname | string

文件的名称。如果该文件与脚本不在同一目录中,请确保也包含该文件的路径。

2. dtype | stringtype | optional

所构造数组所需的数据类型。默认情况下,dtype=float

3. comments | stringliststrings | optional

如果您的输入文件包含注释,那么您可以指定标识注释的内容。默认情况下, comments="#" ,即同一行中 # 后面的字符将被视为注释。如果您的文本文件不包含任何注释,您可以设置None

4. delimiter | string | optional

用于分隔数据的字符串。默认情况下,分隔符是空格。

5. converters | dict<int,function> | optional

您可以应用映射来转换列值。键是列的整数索引,值是所需的映射。检查下面的示例以进行说明。默认情况下,dict=None

6. skiprows | int | optional

开头要跳过的行数。请注意,这包括评论。默认情况下,skiprows=0

7. usecols | intsequence | optional

您要读取的列的整数索引。默认情况下, usecols=None ,即读取所有列。

8. unpack | boolean | optional

您可以通过设置 unpack=True 来单独检索列数组,而不是使用一个巨大的 Numpy 数组。例如,col_one, col_two = np.loadtxt(~, unpack=True) 。默认情况下,unpack=False

9. ndmin | int | optional

您想要的最小维度数。允许的值为 012

10.encoding | string | optional

读取文件时使用的编码(例如 "latin-1""iso-8859-1" )。默认情况下,encoding="bytes"

11.max_rows | int | optional

要读取的最大行数。默认情况下,读取所有行。

返回值

包含导入数据的 NumPy 数组。

例子

基本用法

假设我们有以下名为 sample.txt 的 text-file :

1 2 3 4
5 6 7 8

要导入此文件:

a = np.loadtxt("sample.txt")
a



array([[1., 2., 3., 4.],
       [5., 6., 7., 8.]])

请注意,此 Python 脚本与 sample.txt 位于同一目录中。

另外,请注意 Numpy 选择的默认数据类型是 float64 ,无论文本文件中的数字是否都是整数:

print(a.dtype)



float64

指定所需的数据类型

我们可以使用 dtype 指定类型,而不是使用默认的 float64

a = np.loadtxt("sample.txt", dtype=int)
a



array([[1, 2, 3, 4],
       [5, 6, 7, 8]])

处理评论

假设我们的sample.txt文件如下:

1 2 3 4    # I'm the first row!
5 6 7 8    // I'm the second row!

要删除 text-file 中的注释,请指定 comments

a = np.loadtxt("sample.txt", comments=["#", "//"])
a



array([[1., 2., 3., 4.],
       [5., 6., 7., 8.]])

指定自定义分隔符

假设我们的sample.txt文件如下:

1,2
3,4

要使用逗号作为分隔符:

a = np.loadtxt("sample.txt", delimiter=",")
a



1,2
3,4

指定转换器

假设我们的sample.txt文件如下:

1 2
3 4

举个任意的例子,假设我们想将第一列的所有值加 10,并使第二列的所有值都为 20:

a = np.loadtxt("sample.txt", converters={0: lambda x: int(x) + 10, 1: lambda x: 20})
a



array([[11., 20.],
       [13., 20.]])

跳行

假设我们的sample.txt文件如下:

1 2 3
4 5 6
7 8 9

要跳过第一行:

a = np.loadtxt("sample.txt", skiprows=1)
a



array([[4., 5., 6.],
       [7., 8., 9.]])

只读取某些列

假设我们的sample.txt文件如下:

1 2 3
4 5 6

仅读取第一列和第三列(即列索引 0 和 2):

a = np.loadtxt("sample.txt", usecols=[0,2])
a



array([[1., 3.],
       [4., 6.]])

拆装色谱柱

假设我们的sample.txt文件如下:

1 2
3 4

要检索每列的数据而不是单个 NumPy 数组:

col_one, col_two = np.loadtxt("sample.txt", unpack=True)
print("col_one:", col_one)
print("col_two:", col_two)



col_one: [1. 2.]
col_two: [3. 4.]

指定所需尺寸

假设我们的 sample.txt 只有一行:

1 2 3 4

默认情况下,loadtxt(~) 将生成一个一维数组:

a = np.loadtxt("sample.txt")
a



array([1., 2., 3., 4.])

我们可以通过以下方式指定我们希望数组是二维的:

a = np.loadtxt("sample.txt", ndmin=2)
a



array([[1., 2., 3., 4.]])

指定要读取的最大行数

假设我们的sample.txt文件如下:

1 2
3 4
5 6

仅读取前两行:

a = np.loadtxt("sample.txt", max_rows=2)
a

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 NumPy | loadtxt method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。