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

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年2月28日

相关文章

  • NumPy是什么?能用来做什么?

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

    2023年2月26日
    00
  • NumPy最常用的两个数组排序方法

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

    2023年3月1日
    00
  • NumPy数组的广播是什么意思?

    在NumPy中,广播(broadcasting)指的是不同形状的数组之间进行算术运算的规则。当两个数组的形状不同时,如果满足一些特定的条件,NumPy将自动地对它们进行广播以使得它们的形状相同。 广播的规则如下: 当两个数组的形状长度不同时,在较短的数组的前面加上若干个1,直到长度与较长的数组相同。 如果两个数组的形状在任何一个维度上不同且不同维度的长度不同…

    2023年3月1日
    00
  • 详解 NumPy 从磁盘上保存(save)和加载(load)数组

    在NumPy中,可以使用numpy.save()和numpy.load()方法将数组保存到磁盘中,或从磁盘中加载数组。 接下来将逐一介绍这两个方法。 numpy.save()方法 numpy.save(file, arr, allow_pickle=True, fix_imports=True)方法可以将数组保存到磁盘文件中。它的参数包括: file: 保存…

    Numpy 2023年3月4日
    00
  • Numpy的核心:数组的定义与特性

    我们已经知道,NumPy是Python中用于科学计算的一个基础库,它提供了一种高效的多维数组对象,使我们可以方便地存储和处理大型的数据集。 而在NumPy中,数组更是核心中的核心,所有的科学计算都是围绕着数组进行的,所以学习NumPy中的数组是非常重要的。 在NumPy中,数组被称为ndarray(N-dimensional array),它是一个由同种数据…

    2023年2月27日
    00
  • NumPy数组最常用的4个去重方法

    NumPy提供了多种方法用于对数组进行去重。下面介绍其中的几种方法: numpy.unique() numpy.unique()函数可以用于找到数组中的唯一值,并以排序的形式返回结果。它的参数包括: arr:需要去重的数组; return_index:如果为True,则返回输入数组中唯一元素的索引; return_inverse:如果为True,则返回输入数…

    2023年3月1日
    00
  • NumPy最常用的6种数组转换方法

    本文将为您介绍NumPy中最常用的5种数组转换方法。 astype():将数组的数据类型转换为指定类型,可以使用np.astype()方法。例如,将一个整数类型的数组转换为浮点数类型: import numpy as np arr = np.array([1, 2, 3]) float_arr = arr.astype(np.float64) reshape…

    2023年2月28日
    00
  • NumPy操作数组最常用的7个方法(组合、分裂、运算、广播…)

    NumPy数组支持许多常用的操作方法,包括索引、切片、聚合函数、广播等等。在本文章中将会介绍一些Numpy数组常用的操作方法。 NumPy 数组切片 可以使用切片来访问NumPy数组中的子数组。例如: import numpy as np a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(a[0:2,…

    2023年2月27日
    00
合作推广
合作推广
分享本页
返回顶部