对于资深编程人员来说,在机器学习模型中常婵需要使用到NumPy数组,NumPy数组主要是处理Python中数据有效的数据结构,机器学习模型(scikit-learn)和深度学习模型(Keras)都希望使用NumPy数组的数据格式,同时会对NumPy数组的格式进行预测。所以,我们需要事先将NumPy数组保存到文件中。
学习过本篇文章后,您将知道:
如何将NumPy数组保存为CSV文件。
如何将NumPy数组保存为NPY文件。
如何将NumPy数组保存到NPZ文件。
具体介绍:
一、将NumPy数组保存到.CSV文件
CSV文件是以逗号为分隔符号,将各字段列分离出的一种ASCII文件,可以使用savetxt()函数将NumPy数组保存为CSV文件,此函数将文件名和数组作为参数,并将数组保存为CSV格式。
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 ” 的内容看到以下内容:
我们可以看到数据已正确地保存为单行,并且数组中的浮点数已以全精度保存。
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列匹配。
二、将NumPy数组保存到.NPY文件
有时,我们希望以NumPy数组的形式保存大量数据,但我们需要在另一个Python程序中使用这些数据。因此,我们可以将NumPy数组保存为一种本机二进制格式,既可以有效保存又可以加载。.npy文件格式适合这种使用情况,并且简称为“NumPy格式”。可以通过使用save()函数并指定文件名和要保存的数组来实现。
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、从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)
运行该示例将加载文件并打印内容,确认两者均已正确加载并且内容与我们期望的相同。
三、将NumPy数组保存到.NPZ文件
有时,我们准备用于建模的数据,这些数据需要在多个实验中重复使用,但是数据很大。这可能是经过预处理的NumPy数组,例如文本集或重新缩放的图像数据的集合。在这些情况下,既要将数据保存到文件中,又要以压缩格式保存。这样可以将千兆字节的数据减少到数百兆字节,并允许轻松传输到其他云计算服务器,以实现较长的算法运行时间。.npz文件格式适合这种情况,并支持本机NumPy文件格式的压缩版本。savez_compressed()函数可以将多个NumPy的阵列被保存到一个单一的压缩.npz文件。
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格式一样,我们无法使用文本编辑器检查已保存文件的内容,因为文件格式为二进制。
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文件,提取我们保存的第一个数组,然后打印内容,确认值和数组形状与保存在数组中的内容匹配。
标签:中以,文件,示例,NumPy,保存,数组,data From: https://www.cnblogs.com/q-q56731526/p/17121700.html