NumPy 的 loadtxt(~)
方法读取文本文件,并将其内容解析为 NumPy 数组。
参数
1. fname
| string
文件的名称。如果该文件与脚本不在同一目录中,请确保也包含该文件的路径。
2. dtype
| string
或 type
| optional
所构造数组所需的数据类型。默认情况下,dtype=float
。
3. comments
| string
或list
或strings
| optional
如果您的输入文件包含注释,那么您可以指定标识注释的内容。默认情况下, comments="#"
,即同一行中 # 后面的字符将被视为注释。如果您的文本文件不包含任何注释,您可以设置None
。
4. delimiter
| string
| optional
用于分隔数据的字符串。默认情况下,分隔符是空格。
5. converters
| dict<int,function>
| optional
您可以应用映射来转换列值。键是列的整数索引,值是所需的映射。检查下面的示例以进行说明。默认情况下,dict=None
。
6. skiprows
| int
| optional
开头要跳过的行数。请注意,这包括评论。默认情况下,skiprows=0
。
7. usecols
| int
或 sequence
| optional
您要读取的列的整数索引。默认情况下, usecols=None
,即读取所有列。
8. unpack
| boolean
| optional
您可以通过设置 unpack=True 来单独检索列数组,而不是使用一个巨大的 Numpy 数组。例如,col_one, col_two = np.loadtxt(~, unpack=True)
。默认情况下,unpack=False
。
9. ndmin
| int
| optional
您想要的最小维度数。允许的值为 0
、 1
和 2
。
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
相关用法
- Python NumPy load方法用法及代码示例
- Python locals()用法及代码示例
- Python Django logout用法及代码示例
- Python NumPy logaddexp2方法用法及代码示例
- Python PIL logical_and() and logical_or()用法及代码示例
- Python NumPy log方法用法及代码示例
- Python NumPy logspace方法用法及代码示例
- Python Django login用法及代码示例
- Python NumPy logical_or方法用法及代码示例
- Python NumPy log2方法用法及代码示例
- Python logging.handlers.SocketHandler.makePickle用法及代码示例
- Python PIL logical_xor() and invert()用法及代码示例
- Python logging.Logger.debug用法及代码示例
- Python logging.debug用法及代码示例
- Python NumPy log1p方法用法及代码示例
- Python log10()用法及代码示例
- Python NumPy logical_and方法用法及代码示例
- Python logging.LogRecord用法及代码示例
- Python NumPy logaddexp方法用法及代码示例
- Python Django login_required用法及代码示例
- Python NumPy logical_not方法用法及代码示例
- Python NumPy log10方法用法及代码示例
- Python NumPy logical_xor方法用法及代码示例
- Python list remove()用法及代码示例
- Python len方法用法及代码示例
注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 NumPy | loadtxt method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。