作者:小王
来源:程序员小王
写在前面:
祝大家新年快乐,今天看到的文章然后就翻译了一下,涉及到的技术点都很简单,算是一篇水文,而且我对文章的改动比较大,但是还希望能给你带来一点帮助。
机器学习模型中通常需要使用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文件,提取我们保存的第一个数组,然后打印内容,确认值和数组形状与保存在数组中的内容匹配。
◆ ◆ ◆ ◆ ◆
长按二维码关注我们
数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。
管理员二维码:
猜你喜欢
● 笑死人不偿命的知乎沙雕问题排行榜● 我用Python纪念了那些被烂片收割的智商税!● 互联网大佬学历&背景大揭秘,看看是你的老乡还是校友● 上万条数据撕开微博热搜的真相!● 你相信逛B站也能学编程吗?