NumPy中提供了多种方法来保存和加载文本格式的数据,包括CSV、TXT、TSV等格式。
最常用的保存文本格式文件的方法为:np.savetxt()。np.savetxt()可以将NumPy数组保存为CSV、TXT、TSV等格式的文件。
最常用的加载文本格式文件的方法为:np.genfromtxt()。np.genfromtxt()则可以从文本格式的文件中读取数据并创建NumPy数组。
下面分别介绍这两种方法的使用。
np.savetxt()
np.savetxt()方法可以将一个NumPy数组保存为CSV、TXT、TSV等格式的文件。它的语法如下:
np.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n', header='', footer='', comments='# ', encoding=None)
其中,参数的含义如下:
- fname:要保存的文件名(包括路径)。
- X:要保存的NumPy数组。
- fmt:指定数据的格式,默认为'%.18e',即18位小数的科学计数法。
- delimiter:指定分隔符,默认为一个空格。
- newline:指定换行符,默认为\n。
- header:文件头(第一行)的文本内容,默认为空字符串。
- footer:文件尾(最后一行)的文本内容,默认为空字符串。
- comments:注释符号,默认为'# ',即一个井号加一个空格。
- encoding:指定文件的编码格式,默认为None,即使用系统默认编码。
面是一个保存CSV格式文件的例子:
import numpy as np
# 创建一个3行4列的二维数组
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
# 保存为CSV格式文件
np.savetxt('data.csv', arr, delimiter=',')
执行后,会在当前目录下生成一个名为data.csv的文件,文件内容如下:
1.000000000000000000e+00,2.000000000000000000e+00,3.000000000000000000e+00,4.000000000000000000e+00
5.000000000000000000e+00,6.000000000000000000e+00,7.000000000000000000e+00,8.000000000000000000e+00
9.000000000000000000e+00,1.000000000000000000e+01,1.100000000000000000e+01,1.200000000000000000e+01
可以看到,每行数据使用逗号分隔。
np.genfromtxt()
np.genfromtxt()方法可以从文本格式的文件中读取数据并创建NumPy数组。它的语法如下:
np.genfromtxt(fname, dtype=None, delimiter=None, skip_header=0, skip_footer=0, usecols=None, unpack=False, ndmin=0)
参数涵义说明:
- fname:要加载的文件名,可以是字符串、文件对象或类似对象。
- dtype:返回数组的数据类型,默认为None,自动推断数据类型。
- delimiter:分隔符,默认为None,自动识别分隔符。
- skip_header:要跳过的行数,默认为0。
- skip_footer:要跳过的末尾行数,默认为0。
- usecols:要加载的列数,默认为None,加载所有列。
- unpack:如果为True,则返回数组的转置,即可以将每一列单独返回。
- ndmin:返回数组的最小维度,默认为0。
下面是一个简单的示例:
import numpy as np
# 从文本文件中加载数据
data = np.genfromtxt('data.txt', delimiter=',')
print(data)
其中,假设我们有一个名为data.txt的文本文件,它的内容如下:
1,2,3
4,5,6
7,8,9
运行上述代码,输出结果如下:
array([[1., 2., 3.],
[4., 5., 6.],
[7., 8., 9.]])
可以看到,np.genfromtxt()函数已经成功地加载了文本文件中的数据,并返回了一个NumPy数组。在这个例子中,由于没有指定dtype参数,函数自动推断数据类型为float。分隔符也被自动识别为逗号。
其他方法
除以上两种最常用的保存和加载方法外,Numpy还提供了以下两种文本格式文件的保存和加载方法:
TXT文件
使用Numpy的loadtxt()函数可以读取TXT格式的文件。同样的,使用savetxt()函数可以保存数组到TXT文件中。示例代码如下:
import numpy as np
# 从TXT文件读取数据
data = np.loadtxt('data.txt')
# 将数组保存到TXT文件
np.savetxt('output.txt', data)
JSON文件
使用Numpy的load()函数和dump()函数可以读取和保存JSON格式的文件。需要注意的是,Numpy的load()函数会将JSON文件中的数组转换为Numpy数组。示例代码如下:
import numpy as np
import json
# 从JSON文件读取数据
with open('data.json', 'r') as f:
data_dict = json.load(f)
data = np.array(data_dict['data'])
# 将数组保存到JSON文件
data_dict = {'data': data.tolist()}
with open('output.json', 'w') as f:
json.dump(data_dict, f)
需要注意的是,以上方法只适用于纯文本格式的文件,如果需要保存二进制格式的数据,可以使用Numpy的save()函数和load()函数。具体使用方法可以参考前面提到的示例代码。
本文链接:https://my.lmcjl.com/post/19507.html
4 评论