若绾 若绾
  • 分类
    • 技术
  • 基准跑分
  • 信用卡
  • 摄影
  • 音乐
  • 关于
首页 技术 人工智能AI [NumPy技巧]机器学习中使用numpy对数据集进行保存以集中管理

[NumPy技巧]机器学习中使用numpy对数据集进行保存以集中管理

Royc30ne 2 年前

摘要

在机器学习中,数据是至关重要的。因此,对于任何机器学习项目,对数据的管理和处理都是必不可少的。数据管理涉及到许多方面,包括数据的收集、清理、存储和处理。在这篇文章中,我们将讨论如何使用NumPy来保存数据集以供集中管理。

使用NumPy保存数据集

NumPy是一种用于科学计算的Python库。它提供了一个强大的多维数组对象,以及一系列用于处理这些数组的函数。NumPy数组可以存储不同类型的数据,包括数字、字符串和布尔值。因此,它们是存储数据集的理想选择。

保存单个数组

如果你的数据集中只有一个数组,我们可以使用NumPy的save函数。

numpy.save

函数变量:

file: file, str, or pathlib.Path

数据被保存到的文件或文件名。如果文件是一个文件对象,那么文件名将不会改变。如果文件是一个字符串或路径,如果文件名还没有扩展名,那么将在文件名上添加一个.npy扩展名。

arr: array_like

要保存的阵列数据。

allow_pickle: bool, optional

允许使用Python pickles来保存对象数组。不允许pickle的原因包括安全性 (加载pickle的数据可以执行任意代码) 和可移植性 (pickle的对象可能无法在不同的Python安装上加载,例如,如果存储的对象需要的库不可用,而且不是所有pickle的数据都能在Python 2和Python 3之间兼容)。默认值: True

fix_imports: bool, optional

只有在强迫Python 3上对象数组中的对象以Python 2兼容的方式被pickle时才有用。如果 fix_imports 为 True,pickle 将尝试把新的 Python 3 名称映射到 Python 2 中使用的旧模块名称,这样 pickle 的数据流就可以用 Python 2 读取。

例如,假设我们有一个名为data的NumPy数组,我们可以使用以下代码将其保存到名为data.npy的文件中:

import numpy as np

data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
np.save('data.npy', data)

从文件中加载数组

要加载数据集,我们可以使用NumPy的load函数。例如,以下代码加载了名为data.npy的文件中保存的数组:

import numpy as np

data = np.load('data.npy')
print(data)

输出将是:

[[1 2 3]
 [4 5 6]
 [7 8 9]]

同时保存多个数组

如果你的数据集中具有多个数组,像trani_set, train_label, test_set, test_label。可以使用NumPy的savez或者savez_compressed函数对数据集进行保存。**numpy.savez将多个数组保存为未压缩的.npz文件,而numpy.savez_compressed将数组保存为压缩的.npz**文件,可以节省存储空间。

numpy.savez

函数变量:

file: str or file

文件名(str)或一个打开的文件(file-like object),数据将被保存在那里。如果文件是一个字符串或一个路径,如果文件名中没有.npz扩展名,将被附加到文件名中.

args: Arguments, optional

要保存到文件中的数组。请使用关键字参数(见下面的kwds)来给数组指定名称。作为args指定的数组将被命名为 “arr_0″、”arr_1″,以此类推。

kwds: Keyword arguments, optional

要保存到文件的数组。每个数组将以其相应的关键字名称保存到输出文件中。

用kwds,数组将以关键字的名称保存。在这个例子中,我们创建了两个NumPy数组array1和array2,然后使用numpy.savez将它们保存到名arrays.npz**的文件中。需要注意的是,我们需要为每个数组指定一个关键字参数,该参数将作为数组在文件中的名称。

import numpy as np

array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])

# 保存数组到文件
np.savez('arrays.npz', arr1=array1, arr2=array2)

numpy.savez_compressed

函数变量:

file: str or file

文件名(str)或一个打开的文件(file-like object),数据将被保存在那里。如果文件是一个字符串或一个路径,如果文件名中没有.npz扩展名,将被附加到文件名中。

args: Arguments, optional

要保存到文件中的数组。请使用关键字参数(见下面的kwds)来给数组指定名称。作为args指定的数组将被命名为 “arr_0″、”arr_1″,以此类推。

kwds: Keyword arguments, optional

要保存到文件的数组。每个数组将以其相应的关键字名称保存到输出文件中。

这个例子与上一个类似,但使用了**numpy.savez_compressed将数组保存为压缩的.npz**文件。

import numpy as np

array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])

# 保存数组到压缩文件
np.savez_compressed('compressed_arrays.npz', arr1=array1, arr2=array2)

从文件中加载数组

要从**.npz文件中加载数组,可以使用numpy.load**函数:

import numpy as np

# 加载保存的数组
loaded_arrays = np.load('arrays.npz')

# 通过在文件中指定的名称访问数组
loaded_array1 = loaded_arrays['arr1']
loaded_array2 = loaded_arrays['arr2']

在这个例子中,我们使用**numpy.load加载了名为arrays.npz的文件,并通过之前指定的名称访问其中的数组。同样的方法也适用于加载压缩的.npz**文件。

小结

在本文中,我们讨论了如何使用NumPy来保存数据集以供集中管理。这是一个重要的数据管理方面,应该在任何机器学习项目中得到充分的重视。

# numpy# 人工智能# 数据集# 机器学习
0
Royc30ne
万头攒动火树银花之处不必找我,若与相见,我在各种灯火交集处

评论 (0)

返回
    发表评论

猜你喜欢

  • [Linux指南]手把手教你配置Ubuntu下的CUDA、cuDNN环境
  • [联邦学习]Krum算法:深入解析及代码实现
  • [机器学习]K-means算法详解:原理、优缺点、代码实现、变体及实际应用
  • [联邦学习] 联邦学习概念及常见算法总结|聚合算法|防御算法|攻击算法
  • [联邦学习] FedAvg聚合算法详解及代码实现
Royc30ne
万头攒动火树银花之处不必找我,若与相见,我在各种灯火交集处
22
文章
2
评论
5
获赞

最新内容

Chevereto V4的进阶使用:加入图片审核及儿童色情鉴黄机制
2 年前
Chevereto V4的进阶使用:挂载外部对象存储拓展存储空间
2 年前
教你如何使用 Docker 安装 Chevereto V4 搭建属于自己的图床
2 年前
Creative Commons License

本作品采用知识共享署名-非商业性4.0国际许可协议进行许可。

  • xLog
  • RSS
  • Email
  • 友链
  • 隐私政策
  • 开往
Copyright © 2021-2025 若绾. 萌ICP备20239880号.
友情链接: KPFD BlogWall BlogFinder 张洪Heo 又见苍岚 淇云博客
  • 分类
    • 技术
  • 基准跑分
  • 信用卡
  • 摄影
  • 音乐
  • 关于