NumPy保存、加载文本格式文件的两个方法

yizhihongxing

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()函数。具体使用方法可以参考前面提到的示例代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:NumPy保存、加载文本格式文件的两个方法 - Python技术站

(1)
上一篇 2023年3月4日
下一篇 2023年3月3日

相关文章

  • NumPy最常用的两个数组排序方法

    在NumPy中,有多种排序算法可用于对数组进行排序,包括快速排序、堆排序、归并排序等。 NumPy中的排序函数通常包括以下参数: a: 要排序的数组; axis: 沿着哪个轴进行排序,默认为-1,即沿着最后一个轴排序; kind: 排序算法,可选参数有’quicksort'(快速排序)、’mergesort'(归并排序)、’heapsort'(堆排序),默认…

    2023年3月1日
    00
  • Numpy数组的优点和应用领域

    众所周知,Numpy是Python科学计算中最广泛使用的一个库,主要用于处理多维数组和矩阵计算。 而Numpy中的数组则是NumPy最重要的数据结构之一,具体来说,它有以下优点: 快速而高效的计算:Numpy数组使用C语言编写,这使得数组中的运算更加快速、高效。在处理大量数据时,Numpy数组比Python原生的列表(list)和元组(tuple)更快,因为…

    2023年2月27日
    00
  • 详解NumPy数组的切片和切块

    NumPy是Python中重要的科学计算库,其中的数组可以看作是多维度的容器,可以方便地进行数据处理和计算。 在NumPy中,我们可以使用切片和切块对数组进行索引和取值,以便更加灵活地对数据进行操作。 接下来,我们将详细介绍NumPy数组的切片和切块的操作。 切片操作 在NumPy中,我们可以使用切片操作从数组中提取部分数据。NumPy数组的切片操作类似于P…

    2023年2月28日
    00
  • NumPy是什么?能用来做什么?

    NumPy是Python中用于科学计算和数据分析的一个开源扩展库,它包含了一个强大的N维数组对象和一组函数,可以用来处理各种数组和矩阵运算。NumPy的核心是ndarray(多维数组)对象,它具有快速的数值运算和数组操作能力,可以轻松地进行向量化计算和广播操作。 NumPy可以支持广泛的数学和科学计算,包括线性代数、傅里叶变换、统计分析、随机模拟等。NumP…

    2023年2月26日
    00
  • NumPy数组形状最常用的7种操作方法

    NumPy数组的形状操作指的是对数组的维度和形状进行变换和调整。在NumPy中,数组的形状和维度可以通过各种方法来操作,这样可以更方便地对数组进行处理和分析。 下面是对NumPy数组形状操作的详细介绍。 改变数组的形状 可以使用reshape()函数改变数组的形状,这个函数会返回一个新的数组,而不是修改原始数组的形状。语法如下: new_array = np…

    2023年2月28日
    00
  • 详解NumPy位运算常用的6种方法

    NumPy支持位运算,包括按位与、按位或、按位异或、按位取反等。在NumPy中,位运算符逐位操作数组元素。 NumPy位运算的6个方法 下面介绍NumPy常用的位运算函数: bitwise_and():按位与运算 bitwise_or():按位或运算 bitwise_xor():按位异或运算 bitwise_not():按位取反运算 left_shift()…

    Numpy 2023年3月3日
    00
  • 详解NumPy矩阵乘法操作

    在NumPy中,矩阵乘法是常见的操作之一。矩阵乘法可以用 numpy.dot() 或 @ 运算符来执行。在这里我们将详细介绍这两种方法以及它们的使用。 numpy.dot() numpy.dot() 函数用于计算两个数组的点积,也就是矩阵乘法。对于二维数组,它计算矩阵乘积,对于一维数组,它计算点积。对于 N 维数组,它是沿最后一个轴的和的乘积。它的语法如下:…

    Numpy 2023年3月3日
    00
  • NumPy与Matplotlib联合绘图

    NumPy和Matplotlib是Python科学计算中常用的两个库,其中NumPy用于数值计算和数组操作,而Matplotlib则用于数据可视化。 下面介绍一些常用的NumPy和Matplotlib绘图方法。 NumPy绘图方法 NumPy提供了一些基本的绘图函数,包括plot、hist、scatter、imshow等。 使用方法如下: plot函数:用于…

    2023年3月4日 Numpy
    00
合作推广
合作推广
分享本页
返回顶部