【Python】numpy读写文件

官网

https://numpy.org/doc/stable/reference/routines.io.html
在这里插入图片描述
在这里插入图片描述

文本文件

读取文本文件

说明

  1. np.loadtxt()
  • 文件格式:纯文本文件,每行数据可以是不同的数据类型。
  • 参数设置:常用参数包括 delimiter 指定分隔符、dtype 指定数据类型、skiprows 指定跳过的行数等。
  • 适用场景:适用于读取简单的纯文本数据,例如一组实验数据。
  1. np.genfromtxt()
  • 文件格式:纯文本文件,可以处理缺失数据和不规则数据。
  • 参数设置:常用参数包括 delimiter 指定分隔符、dtype 指定数据类型、skip_header 指定跳过的头部行数、missing_values 指定缺失值等。
  • 适用场景:适用于读取不规则的纯文本数据,例如含有缺失值或空行的数据。
  1. np.recfromtxt()
  • 文件格式:纯文本文件,可以处理缺失数据和不规则数据。
  • 参数设置:常用参数和 np.genfromtxt() 类似。
  • 适用场景:适用于读取带有列名的结构化数据,例如实验数据表格。
  1. np.recfromcsv()
  • 文件格式:CSV 文件,每行数据通常是相同的数据类型。
  • 参数设置:常用参数和 delimiter 指定分隔符、dtype 指定数据类型、skip_header 指定跳过的头部行数等。
  • 适用场景:适用于读取带有列名的 CSV 数据,例如实验数据表格。

区别

  • np.loadtxt():用于从文本文件中读取数据并将其存储为 NumPy 数组。默认情况下,此函数假定数据是数字,以空格为分隔符,并且没有标题行。此外,您可以指定数据类型,跳过特定行或列等选项。
  • np.genfromtxt():与 loadtxt() 类似,但更灵活。它可以处理缺失值,不同的分隔符,不同的数据类型,以及不同的文本文件格式(例如 CSV,TSV,等)。此外,它还可以处理带有标题行和注释行的数据文件。
  • np.recfromtxt():与 genfromtxt() 类似,但它创建的是结构化数组,其中每列可以具有不同的数据类型,并且每列可以用标题来标识。
  • np.recfromcsv():与 recfromtxt() 类似,但是它只能处理 CSV 文件格式,并且默认情况下使用逗号作为分隔符。

写入文本文件

np.savetxt()

  • 文件格式:纯文本文件,每行数据可以是不同的数据类型。
  • 参数设置:常用参数包括 delimiter 指定分隔符、fmt 指定输出格式等。
  • 适用场景:适用于将一组实验数据保存到纯文本文件中。

二进制文件

读取二进制文件

说明

  1. np.load()
  • 文件格式:NumPy 二进制文件。
  • 参数设置:常用参数包括 allow_pickle 指定是否允许加载 pickled 对象、mmap_mode 指定内存映射模式等。
  • 适用场景:适用于加载保存了 NumPy 数组的二进制文件。
  1. np.fromfile()
  • 文件格式:任意二进制文件。
  • 参数设置:常用参数包括 dtype 指定数据类型、count 指定要读取的元素个数等。
  • 适用场景:适用于读取大型的二进制文件,例如图像数据。

区别

  • np.load():用于从 NumPy 专用二进制文件(.npy,.npz)中加载数据。这些文件由 np.save()np.savez() 函数创建,可以在磁盘上保存 NumPy 数组以及它们的元数据(例如数据类型,形状等)。np.load() 函数可以轻松地读取这些文件,并将它们还原为原始的 NumPy 数组。
  • np.fromfile():用于从二进制文件中加载数据,并将其存储为 NumPy 数组。这个函数假定文件中的数据是连续的,并且按照指定的数据类型进行编码。因此,您需要指定数据类型和数组的形状,以便将读取的数据正确地解释为 NumPy 数组。

总之,np.load()np.fromfile() 都可以用于从文件中加载数据,但是 np.load() 专门用于加载 NumPy 二进制文件,而 np.fromfile() 用于加载二进制文件,需要手动指定数据类型和形状。

写入 NumPy 二进制文件

说明

  1. np.save()
  • 文件格式:NumPy 二进制文件。
  • 参数设置:常用参数包括 allow_pickle 指定是否允许 pickle 对象、fix_imports 指定是否修复 Python 2 和 Python 3 之间的差异等。
  • 适用场景:适用于将 NumPy 数组保存到二进制文件中。
  1. np.savez()
  • 文件格式:压缩的 NumPy 二进制文件。
  • 参数设置:常用参数包括 allow_picklefix_imports**arrays 等。
  • 适用场景:适用于将多个 NumPy 数组保存到一个压缩的二进制文件中。
  1. np.savez_compressed()
  • 文件格式:压缩的 NumPy 二进制文件。
  • 参数设置:常用参数和 np.savez() 类似。
  • 适用场景:适用于将多个 NumPy 数组保存到一个高度压缩的二进制文件中,节省存储空间。

区别

  • np.save():将单个 NumPy 数组保存到磁盘上的二进制文件(.npy)中。这个文件只包含数组的原始数据,不包含任何元数据(例如数据类型,形状等)。因此,当您加载这个文件时,您需要知道原始数组的元数据才能正确地解释数据。
  • np.savez():将多个 NumPy 数组保存到磁盘上的压缩二进制文件(.npz)中。这个文件包含多个数组以及它们的元数据。这个文件可以通过索引来访问每个数组,就像一个字典一样。这个函数的参数是一系列的 NumPy 数组,每个数组都需要指定一个名称,以便在加载文件时可以引用它。
  • np.savez_compressed():与 np.savez() 类似,但是它在保存时使用了更高的压缩比率,因此生成的文件更小。这个函数的参数与 np.savez() 相同,生成的文件名也是以 .npz 文件扩展名结尾。

猜你喜欢

转载自blog.csdn.net/qq_25262697/article/details/129851236
今日推荐