首页 > 其他分享 >NumPy数组如何保存到文件中以进行机器学习?

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

时间:2023-02-15 09:59:20浏览次数:42  
标签:中以 文件 示例 NumPy 保存 数组 data

对于资深编程人员来说,在机器学习模型中常婵需要使用到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

相关文章