NumPy numpy.loadtxt() 函数

Suraj Joshi 2023年1月30日 2020年11月7日
  1. numpy.loadtxt() 的语法
  2. 示例代码: NumPy 使用 numpy.loadtxt() 函数读取 txt 文件
  3. 示例代码:在 numpy.loadtxt() 函数中设置 dtype 参数读取 txt 文件
  4. 示例代码:读取 txt 文件时在 numpy.loadtxt() 函数中设置 delimiter 参数
  5. 示例代码:在读取 txt 文件时,在 numpy.loadtxt() 函数中设置 usecols 参数
  6. 示例代码在读取 txt 文件时在 numpy.loadtxt() 函数中设置 unpack 参数
NumPy numpy.loadtxt() 函数

Python Numpy numpy.loadtxt() 函数从文本文件中加载数据,并为简单的文本文件提供了快速方法。

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)

参数

fname 要导入的 txt 文件的路径
dtype 结果数组的数据类型
comments 用来表示评论开始的字符或字符列表
delimiter 用于解析 txt 文件内容的定界符
converters 字典将列号映射到一个函数,该函数将把列的字符串解析成所需的值。
skiprows 跳过哪一行
usecols 要读取的列索引
unpack 对返回的数组进行转置,因此可以使用 x, y, z = loadtxt(...) 对参数进行解包。[unpack=True]
ndim 返回数组的最小维数
encoding 用于解码输入文件的编码
max_rows 读取 skiprows 行后的最大行数

返回值

txt 文件中读取的 N 维数组。

示例代码: NumPy 使用 numpy.loadtxt() 函数读取 txt 文件

import numpy as np
  
from io import StringIO    
  
f = StringIO("3 6 8 \n12 9 1 \n 2 3 4") 
a = np.loadtxt(f) 

print("The loaded array is:")
  
print(a)

输出:

 The loaded array is:
[[ 3.  6.  8.]
 [12.  9.  1.]
 [ 2.  3.  4.]]

它将 txt 文件加载到 NumPy 数组中。

这里,StringIO 的作用就像一个文件对象。

我们也可以提供 file path 作为参数给 np.loadtxt 函数,使用绝对和相对路径。

示例代码:在 numpy.loadtxt() 函数中设置 dtype 参数读取 txt 文件

默认情况下,从文本文件中读取的数组值的数据类型是 float,我们可以使用 dtype 参数手动设置元素的数据类型。我们可以使用 dtype 参数手动设置元素的数据类型。

import numpy as np
  
from io import StringIO    
  
f = StringIO("3 6 8 \n12 9 1 \n 2 3 4") 
a = np.loadtxt(f,dtype="int") 

print("The loaded array is:")
  
print(a)

输出:

The loaded array is:
[[ 3  6  8]
 [12  9  1]
 [ 2  3  4]]

上面的代码将所有从 txt 文件中读取的元素以整数形式加载到数组中。

示例代码:读取 txt 文件时在 numpy.loadtxt() 函数中设置 delimiter 参数

默认情况下,分隔数值的定界符是一个空白符,我们可以使用 delimiter 参数手动设置定界符。

import numpy as np
  
from io import StringIO    
  
f = StringIO("3, 6, 8 \n12, 9, 1 \n 2, 3, 4") 
a = np.loadtxt(f,dtype="int",delimiter=",") 

print("The loaded array is:")
  
print(a) 

输出:

The loaded array is:
[[ 3  6  8]
 [12  9  1]
 [ 2  3  4]]

由于上面 txt 文件的值用 , 隔开,因此当从 txt 文件读取到数组中时,我们必须使用 , 作为分隔符来分隔值。

示例代码:在读取 txt 文件时,在 numpy.loadtxt() 函数中设置 usecols 参数

import numpy as np
  
from io import StringIO    
  
f = StringIO("3 6 8 \n12 9 1 \n 2 3 4") 
a = np.loadtxt(f,dtype="int",usecols =(0, 1)) 

print("The loaded array is:")
  
print(a)  

输出:

The loaded array is:
[[ 3  6]
 [12  9]
 [ 2  3]]

usecols 指定从 txt 文件中读取哪些列。

它只从 txt 文件中读取第 1 列和第 2 列到数组中。

示例代码在读取 txt 文件时在 numpy.loadtxt() 函数中设置 unpack 参数

import numpy as np
  
from io import StringIO    
  
f = StringIO("3 6 8 \n12 9 1 \n 2 3 4") 
(x,y,z) = np.loadtxt(f,dtype="int",unpack=True) 

print(x)
print(y)
print(z) 

输出:

[ 3 12  2]
[6 9 3]
[8 1 4]

它将数组进行转置,并将转置后的数组行解包到指定的变量中。

Author: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn