专栏首页程序员小王如何将NumPy数组保存到文件中以进行机器学习

如何将NumPy数组保存到文件中以进行机器学习

写在前面:

祝大家新年快乐,今天看到的文章然后就翻译了一下,涉及到的技术点都很简单,算是一篇水文,而且我对文章的改动比较大,但是还希望能给你带来一点帮助。

机器学习模型中通常需要使用NumPy数组,NumPy数组是处理Python中数据有效的数据结构,机器学习模型(例如scikit-learn)和深度学习模型(例如Keras)都期望输入数据采用NumPy数组的格式,并以NumPy数组的格式进行预测。因此,通常需要将NumPy数组保存到文件中。 学习过本篇文章后,您将知道:

  • 如何将NumPy数组保存为CSV文件。
  • 如何将NumPy数组保存为NPY文件。
  • 如何将NumPy数组保存到NPZ文件。

具体介绍:

1.将NumPy数组保存到.CSV文件

CSV文件是以逗号为分隔符号,将各字段列分离出的一种ASCII文件,可以使用savetxt()函数将NumPy数组保存为CSV文件,此函数将文件名和数组作为参数,并将数组保存为CSV格式。

1.1将NumPy数组保存到CSV文件的示例

下面的示例演示如何将单个NumPy数组保存为CSV格式。

# save numpy array as csv file
from numpy import asarray
from numpy import savetxt
# define data
data = asarray([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
# save to csv file
savetxt('data.csv', data, delimiter=',')

运行示例将定义一个NumPy数组,并将其保存到文件“ data.csv ”中。 该数组具有10列的单行数据。我们希望将这些数据作为单行数据保存到CSV文件中。运行示例之后,我们可以检查“ data.csv ” 的内容看到以下内容:

我们可以看到数据已正确地保存为单行,并且数组中的浮点数已以全精度保存。

1.2从CSV文件加载NumPy数组的示例

我们可以使用loadtext()函数将此数据作为NumPy数组加载,并指定文件名和相同的逗号分隔符。下面列出了完整的示例。

# load numpy array from csv file
from numpy import loadtxt
# load array
data = loadtxt('data.csv', delimiter=',')
# print the array
print(data)

运行该示例将从CSV文件加载数据并打印内容,使我们的单行与上一示例中定义的10列匹配。

2.将NumPy数组保存到.NPY文件

有时,我们希望以NumPy数组的形式保存大量数据,但我们需要在另一个Python程序中使用这些数据。因此,我们可以将NumPy数组保存为一种本机二进制格式,既可以有效保存又可以加载。.npy文件格式适合这种使用情况,并且简称为“NumPy格式”。可以通过使用save()函数并指定文件名和要保存的数组来实现。

2.1将NumPy数组保存到NPY文件 下面的示例定义了我们的二维NumPy数组,并将其保存到.npy文件中。

# save numpy array as npy file
from numpy import asarray
from numpy import save
# define data
data = asarray([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
# save to npy file
save('data.npy', data)

运行示例之后,您将在目录中看到一个名为“ data.npy ” 的新文件。 您不能直接使用文本编辑器检查此文件的内容,因为它是二进制格式。

2.2从NPY文件加载NumPy数组的示例 您可以稍后使用load()函数将此文件作为NumPy数组加载。下面列出了完整的示例。

# load numpy array from npy file
from numpy import load
# load array
data = load('data.npy')
# print the array
print(data)

运行该示例将加载文件并打印内容,确认两者均已正确加载并且内容与我们期望的相同。

3.将NumPy数组保存到.NPZ文件

有时,我们准备用于建模的数据,这些数据需要在多个实验中重复使用,但是数据很大。这可能是经过预处理的NumPy数组,例如文本集或重新缩放的图像数据的集合。在这些情况下,既要将数据保存到文件中,又要以压缩格式保存。这样可以将千兆字节的数据减少到数百兆字节,并允许轻松传输到其他云计算服务器,以实现较长的算法运行时间。.npz文件格式适合这种情况,并支持本机NumPy文件格式的压缩版本。savez_compressed()函数可以将多个NumPy的阵列被保存到一个单一的压缩.npz文件。

3.1将NumPy数组保存到NPZ文件 我们可以使用此功能将单个NumPy数组保存到压缩文件中。下面列出了完整的示例。

# save numpy array as npz file
from numpy import asarray
from numpy import savez_compressed
# define data
data = asarray([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
# save to npy file
savez_compressed('data.npz', data)

运行示例将定义数组,并将其保存为压缩的numpy格式的文件,名称为“ data.npz”。与.npy格式一样,我们无法使用文本编辑器检查已保存文件的内容,因为文件格式为二进制。

3.2从NPZ文件加载NumPy数组的示例 我们可以使用load()函数来加载此文件。在这种情况下,savez_compressed()函数支持将多个数组保存到单个文件中。load()函数可能会加载多个数组。加载的数组从dict中的load()函数返回,第一个数组的名称为'arr_0',第二个数组的名称为'arr_1',依此类推。 下面列出了加载单个数组的完整示例。

# load numpy array from npz file
from numpy import load
# load dict of arrays
dict_data = load('data.npz')
# extract the first array
data = dict_data['arr_0']
# print the array
print(data)

运行示例将加载包含数组字典的压缩numpy文件,提取我们保存的第一个数组,然后打印内容,确认值和数组形状与保存在数组中的内容匹配。

推荐阅读:

我回来啦

机器学习实战--对亚马逊森林卫星照片进行分类(3)

机器学习实战--对亚马逊森林卫星照片进行分类(2)

机器学习实战--对亚马逊森林卫星照片进行分类(1)

本文分享自微信公众号 - 程序员小王(PythonLearningCamp),作者:小王

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微信好友大揭秘

    每天自己手机应用使用时间排行榜,微信都毫不意外地占据榜首,每天睁开眼的第一件事就是拿起手机打开微信,查收消息,关注朋友圈好友的动态。但是除了这些微信还有哪些好玩...

    PM小王
  • 【打卡贴】(No.010) 正则表达式匹配

    给定一个字符串 (s) 和一个字符模式 (p)。实现支持 '.' 和 '*' 的正则表达式匹配。

    PM小王
  • AI玩“剧透”预测《权力的游戏》死亡名单

    自己断更很久了,一直忙着复习考研,最近状态不错,第一轮的复习也接近尾声,今天就写篇文章给大家介绍一个关于《权力的游戏》Github项目。

    PM小王
  • NumPy进阶修炼|你真的了解NumPy吗

    大家好,上周发布的Pandas进阶修炼120题不知道各位做的怎么样,现在NumPy系列也闪亮登场!在上个系列一直让我很遗憾的就是对一些重要的函数没有进一步讲解(...

    刘早起
  • 如何利用Requests和网dai平台做一个短信hz

    对于众所周知的事就是网dai害人,尤其是对于那些高炮系列,更是害人不浅那,今天我们就来尝试用网dai的短xin接口做一个用于娱乐的短信hzj,耗光这些网dai平...

    吾爱小白
  • 第4阶段——制作根文件系统之编译配置安装busybox(3)

    在上一节分析出制作一个最小的根文件系统至少需要: (1)/dev/console(终端控制台, 提供标准输入、标准输出以及标准错误) /dev/null  (为...

    张诺谦
  • Numpy介绍与安装

    拾点阳光
  • Numpy介绍与安装

    拾点阳光
  • NumPy 介绍与安装

    NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。

    拾点阳光
  • 第4阶段——制作根文件系统之编译配置安装busybox(3)

    在上一节分析出制作一个最小的根文件系统至少需要: (1)/dev/console(终端控制台, 提供标准输入、标准输出以及标准错误) /dev/null  (为...

    张诺谦

扫码关注云+社区

领取腾讯云代金券