- NumPy 教程
- NumPy - 首页
- NumPy - 简介
- NumPy - 环境配置
- NumPy 数组
- NumPy - Ndarray 对象
- NumPy - 数据类型
- NumPy 数组的创建和操作
- NumPy - 数组创建函数
- NumPy - 数组操作
- NumPy - 从现有数据创建数组
- NumPy - 从数值范围创建数组
- NumPy - 数组迭代
- NumPy - 数组重塑
- NumPy - 数组连接
- NumPy - 数组堆叠
- NumPy - 数组分割
- NumPy - 数组扁平化
- NumPy - 数组转置
- NumPy 索引和切片
- NumPy - 索引与切片
- NumPy - 高级索引
- NumPy 数组属性和运算
- NumPy - 数组属性
- NumPy - 数组形状
- NumPy - 数组大小
- NumPy - 数组步幅
- NumPy - 数组元素大小
- NumPy - 广播机制
- NumPy - 算术运算
- NumPy - 数组加法
- NumPy - 数组减法
- NumPy - 数组乘法
- NumPy - 数组除法
- NumPy 高级数组运算
- NumPy - 交换数组轴
- NumPy - 字节交换
- NumPy - 副本与视图
- NumPy - 元素级数组比较
- NumPy - 数组过滤
- NumPy - 数组连接
- NumPy - 排序、搜索和计数函数
- NumPy - 数组搜索
- NumPy - 数组并集
- NumPy - 查找唯一行
- NumPy - 创建日期时间数组
- NumPy - 二元运算符
- NumPy - 字符串函数
- NumPy - 数学函数
- NumPy - 统计函数
- NumPy - 矩阵库
- NumPy - 线性代数
- NumPy - Matplotlib
- NumPy - 使用 Matplotlib 绘制直方图
- NumPy - NumPy 的 I/O 操作
- NumPy 排序和高级操作
- NumPy - 数组排序
- NumPy - 沿轴排序
- NumPy - 使用花式索引排序
- NumPy - 结构化数组
- NumPy - 创建结构化数组
- NumPy - 操作结构化数组
- NumPy - 字段访问
- NumPy - 记录数组
- NumPy - 加载数组
- NumPy - 保存数组
- NumPy - 向数组追加值
- NumPy - 交换数组列
- NumPy - 向数组插入轴
- NumPy 缺失数据处理
- NumPy - 缺失数据处理
- NumPy - 识别缺失值
- NumPy - 删除缺失数据
- NumPy - 缺失数据插补
- NumPy 性能优化
- NumPy - 使用数组进行性能优化
- NumPy - 使用数组进行矢量化
- NumPy - 数组的内存布局
- NumPy 线性代数
- NumPy - 线性代数
- NumPy - 矩阵库
- NumPy - 矩阵加法
- NumPy - 矩阵减法
- NumPy - 矩阵乘法
- NumPy - 元素级矩阵运算
- NumPy - 点积
- NumPy - 矩阵求逆
- NumPy - 行列式计算
- NumPy - 特征值
- NumPy - 特征向量
- NumPy - 奇异值分解
- NumPy - 求解线性方程组
- NumPy - 矩阵范数
- NumPy 元素级矩阵运算
- NumPy - 求和
- NumPy - 平均值
- NumPy - 中位数
- NumPy - 最小值
- NumPy - 最大值
- NumPy 集合运算
- NumPy - 唯一元素
- NumPy - 交集
- NumPy - 并集
- NumPy - 差集
- NumPy 有用资源
- NumPy 编译器
- NumPy - 快速指南
- NumPy - 有用资源
- NumPy - 讨论
NumPy - 数组保存
在 NumPy 中保存数组
在 NumPy 中保存数组是指将 NumPy 数组写入文件以便存储和稍后重新加载的过程。
NumPy 提供了几种方法来以各种格式保存数组,它们是:
- np.save() 函数: 将单个 NumPy 数组保存到二进制 .npy 格式的文件中。
- np.savez() 函数: 将多个 NumPy 数组保存到压缩的 .npz 格式的单个文件中。
- np.savez_compressed() 函数: 与 np.savez() 类似,但会压缩数据以减小文件大小。
- np.savetxt() 函数: 将 NumPy 数组保存到具有特定格式的文本文件中。
将数组保存到文本文件
在 NumPy 中将数组保存到文本文件对于以人类可读的格式导出数据或与需要文本输入的其他程序兼容非常有用。
NumPy 使用np.savetxt() 函数以指定的格式将数组写入文本文件。它旨在处理包含数值数据的数组,但可以通过格式化选项将其应用于各种用例。以下是语法:
numpy.savetxt(fname, data, fmt=<format>, delimiter=<delimiter>, header=<header>, footer=<footer>, comments=<char>)
其中,
- fname: 将数据保存到的文件名或文件对象。
- data: 要保存的数组。它可以是一维或多维数组。
- fmt: 输出的格式字符串。定义如何格式化数据(例如,浮点精度)。
- delimiter: 文件中分隔值用的字符串或字符(例如,逗号用于 CSV,空格用于空格分隔)。
- header: 要写入文件开头的字符串。用于添加元数据或列名。
- footer: 要写入文件结尾的字符串。可用于附加信息。
- comments: 指示注释开始的字符串。默认为 #。
示例
在下面的示例中,我们使用 np.savetxt() 函数将一个二维 NumPy 数组保存到文本文件中:
import numpy as np # Create an array array = np.array([[1, 2, 3], [4, 5, 6]]) # Save the array to a text file np.savetxt('data.txt', array, fmt='%d', delimiter=',', header='Column1,Column2,Column3') print ('File Saved succesfully!!')
获得的输出如下:
File Saved succesfully!!
将数组保存到二进制文件
在 NumPy 中将数组保存到二进制文件是将数值数据以紧凑格式存储的一种方法。二进制文件通常用于保存大型数据集或出于性能原因,因为与文本文件相比,它们通常读取和写入速度更快。
NumPy 提供了np.save() 函数、np.savez() 函数和np.savez_compressed() 函数,专门用于以二进制格式保存数组。
使用 np.save() 函数
np.save() 函数将单个 NumPy 数组保存到 NumPy 原生的.npy 格式的二进制文件中。此格式包含元数据,例如数组的形状和 dtype,允许以后加载和操作。以下是语法:
numpy.save(file, arr, allow_pickle=False, fix_imports=True)
其中,
- file: 将数组保存到的文件名或文件对象。文件扩展名应为 .npy。
- arr: 要保存的 NumPy 数组。
- allow_pickle: 如果为 True,则允许保存可以腌制的对象。默认为 False。
- fix_imports: 如果为 True,则尝试修复加载腌制数据时的兼容性问题(对于 Python 2 到 3)。
示例
在这个例子中,我们使用 np.save() 函数将一个二维 NumPy 数组保存到二进制“.npy”文件中,该函数有效地存储数组数据:
import numpy as np # Create an array array = np.array([[1, 2, 3], [4, 5, 6]]) # Save the array to a .npy file np.save('array.npy', array) print ("File saved!!")
这将产生以下结果:
File saved!!
使用 np.savez() 函数
np.savez() 函数将多个数组保存到具有“.npz”扩展名的单个文件中。“.npz”文件是一个 zip 存档,其中包含每个数组的一个“.npy”文件,可以通过名称访问这些文件。以下是语法:
numpy.savez(file, *args, **kwargs)
其中,
- file: 将数组保存到的文件名或文件对象。文件扩展名应为 .npz。
- *args: 要保存的数组。
- **kwargs: 指定每个数组名称的关键字参数。
示例
在下面的示例中,我们使用 np.savez() 函数将多个 NumPy 数组保存到压缩的“.npz”文件中,其中“array1”和“array2”分别存储它们各自的名称:
import numpy as np # Create multiple arrays array1 = np.array([1, 2, 3]) array2 = np.array([[4, 5, 6], [7, 8, 9]]) # Save the arrays to a .npz file np.savez('arrays.npz', array1=array1, array2=array2) print ("File saved!!")
以上代码的输出如下:
File saved!!
使用 np.savez_compressed() 函数
np.savez_compressed() 函数与 np.savez() 函数类似,但它会压缩数组以减小文件大小。这对于更有效地存储大型数据集非常有用。以下是语法:
numpy.savez_compressed(file, *args, **kwargs)
其中,
- file: 将数组保存到的文件名或文件对象。文件扩展名应为 .npz。
- *args: 要保存的数组。
- **kwargs: 指定每个数组名称的关键字参数。
示例
在这里,我们使用 np.savez_compressed() 函数将多个 NumPy 数组保存到压缩的“.npz”文件中,该函数在存储“array1”和“array2”及其各自名称的同时减小了文件大小:
import numpy as np # Create multiple arrays array1 = np.array([1, 2, 3]) array2 = np.array([[4, 5, 6], [7, 8, 9]]) # Save the arrays to a compressed .npz file np.savez_compressed('arrays_compressed.npz', array1=array1, array2=array2) print ("File saved!!")
获得的输出如下:
File saved!!