返回

NumPy数据读入之genfromtxt用法详解

人工智能

在进行科学计算时,经常需要从外部加载数据。NumPy提供了genfromtxt函数,可以方便地从文本文件中导入数据。genfromtxt可以分解为两步:第一步是从文件中读取数据,并转化成为字符串;第二步是将字符串解析成NumPy数组。

import numpy as np

# 从文本文件中读取数据
data = np.genfromtxt('data.txt', delimiter=',')

# 打印数据
print(data)

输出:

[[ 1.  2.  3.]
 [ 4.  5.  6.]
 [ 7.  8.  9.]]

genfromtxt函数可以指定分隔符,以便正确解析数据。分隔符可以是任何字符,但最常用的分隔符是逗号和制表符。

# 使用逗号作为分隔符
data = np.genfromtxt('data.csv', delimiter=',')

# 使用制表符作为分隔符
data = np.genfromtxt('data.tsv', delimiter='\t')

genfromtxt函数还可以指定数据类型。数据类型可以是任何NumPy数据类型,例如int、float和str。

# 将数据解析成整数
data = np.genfromtxt('data.txt', delimiter=',', dtype=int)

# 将数据解析成浮点数
data = np.genfromtxt('data.txt', delimiter=',', dtype=float)

# 将数据解析成字符串
data = np.genfromtxt('data.txt', delimiter=',', dtype=str)

genfromtxt函数还可以指定缺失值。缺失值可以是任何字符,但最常用的缺失值是NA和NaN。

# 将缺失值解析成NA
data = np.genfromtxt('data.txt', delimiter=',', missing_values='NA')

# 将缺失值解析成NaN
data = np.genfromtxt('data.txt', delimiter=',', missing_values='NaN')

genfromtxt函数还可以指定评论行。评论行是指那些以特定字符开头的行,这些行不会被解析成数据。

# 将以#开头的行解析成评论行
data = np.genfromtxt('data.txt', delimiter=',', comments='#')

# 将以!开头的行解析成评论行
data = np.genfromtxt('data.txt', delimiter=',', comments='!')

genfromtxt函数还可以指定文件编码。文件编码是指文本文件的字符编码方式,例如UTF-8和GBK。

# 将文件编码解析成UTF-8
data = np.genfromtxt('data.txt', delimiter=',', encoding='UTF-8')

# 将文件编码解析成GBK
data = np.genfromtxt('data.txt', delimiter=',', encoding='GBK')

genfromtxt函数是一个非常强大的函数,可以满足各种数据导入需求。在实际应用中,可以根据需要灵活配置genfromtxt函数的各个参数,以获得所需的数据。