学习Numpy savez的基础知识

271 阅读5分钟

本教程将告诉你如何用Numpy save保存你的Numpy数据集。

它解释了该函数的作用,解释了语法,并展示了如何使用np.save的分步例子。

Numpy save的快速介绍

Numpy save是来自Python的Numpy包的一个函数。

这个函数的作用很简单。

Numpy save你的Numpy数据保存到一个文件中,该文件可以存储在你的计算机上并与他人共享。

An image that shows how Numpy save "saves" Numpy array data to a .npy file format.

具体来说,np.save() ,将Numpy数组保存为一个二进制文件,结尾为.npy

然而,这里面有一些重要的细节,取决于你到底是如何使用这个语法的。

既然如此,我们来看看np.save() 的语法。

Numpy Save的语法

现在你已经了解了Numpy保存函数的作用,让我们来看看它的语法。

一个简单的说明

关于语法的一个快速说明。

在我们使用Numpy函数之前,我们需要将Numpy包导入我们的工作环境。

具体如何做可以改变语法。

通常的惯例是用别名np 来导入Numpy。你可以像这样做。

import numpy as np

下面的一切都假设你已经这样导入了Numpy。

np.save语法

Numpy保存的语法是相当直接的。

假设你已经像上面描述的那样导入了Numpy,你输入函数为np.save()

An image that explains the syntax of Numpy save.

该函数的第一个参数是你想保存数据的文件名。

第二个参数是你想保存的Numpy数组数据。

然后还有一些可选的参数,你可以用它们来修改函数的行为。

Numpy Save的参数和输入

让我们仔细看看该函数的输入和可选参数。

  • filename
  • array
  • allow_pickle
  • fix_imports
filename (必填)

filename 参数是该函数的第一个输入。

这个参数严格来说是一个位置参数。在这种情况下,这意味着np.save函数假定该函数的第一个输入是 "文件名"。

这个文件名可以是

  • 一个文件对象的名称
  • 一个字符串(即一个输出文件的名称,以字符串的形式出现)
  • 一个路径

如果文件名参数是一个字符串或路径,该函数将附加文件后缀".npy",如果它还不是名称的一部分。

array (必填)

array 输入的是你想保存的数组数据。

这将是一个Numpy数组或一个 "类似数组 "的对象。 所以从技术上讲,你可以在这里输入一个Python列表或其他类似数组的对象。

allow_pickle

默认情况下,这个参数被设置为allow_pickle=True 。这将使用Python腌制技术保存你的数组数据。

腌制你的数据可能会导致一些安全问题(即,当你加载腌制的数据时,它可能会运行恶意代码)。

腌制你的数据可能会导致数据可移植性的问题,因为一些系统可能无法加载腌制的数据(例如,如果他们没有安装所需的包)。

如果你想关闭腌制功能,你可以设置allow_pickle = False

fix_imports

这个参数设置为fix_imports = True 。这有助于使pickled输出文件在Python 2系统上兼容和可读,因为有时Python 2和Python 3之间对pickled数据有兼容性问题。

如何使用Numpy保存的例子

现在我们已经看了语法,让我们看一下Numpy保存的一些例子。

例子

先运行这段代码

在你运行这个例子之前,你需要运行一些设置代码。

具体来说,你需要导入Numpy,同时创建一个我们可以使用的Numpy数组。

让我们首先导入Numpy。

import numpy as np

而现在,我们将用Numpy数组函数创建一个Numpy数组。

# CREATE NUMPY ARRAY
my_array = np.array([[1,2,3],[4,5,6]])

让我们快速将其打印出来。

print(my_array)

输出

[[1 2 3]
 [4 5 6]]

正如你所看到的,这是一个简单的Numpy数组,有2行和3列。 我们将能够用Numpy save将其保存为一个.npy文件。

例子1:将一个现有的Numpy数组保存到.npy文件中

在这里,我将向你展示一个简单的例子,说明如何将一个Numpy数组保存到一个.npy 文件。

要做到这一点,我们将调用np.save() 。 该函数的两个参数将是输出文件的名称,以及我们想要保存的Numpy数组的名称。

让我们看一下。

np.save('my_array_temp.npy', my_array)

所以在运行这段代码后,我们现在在电脑的文件系统中有一个名为my_array_temp.npy 的本地文件。

如果你愿意,你也可以使用Numpy load将数据加载回你的工作环境。

# LOAD NUMPY ARRAY
np.load('my_array_temp.npy', allow_pickle = True)

结束

array([[1, 2, 3],
       [4, 5, 6]])

所以你会注意到,当我们使用np.load() 加载.npy 文件时,它将数据加载为一个Numpy数组。

关于Numpy保存的常见问题

现在你已经了解了Numpy save并看到了一些例子,让我们回顾一下关于这个技术的一些常见问题。

问题1:为什么我不能在文本编辑器中阅读保存的.npy文件?

.npy 格式保存的文件是二进制格式。

这意味着,在文本编辑器中不可能直接读取或检查你保存在.npy 文件中的Numpy数据。

如果你想检查.npy 文件中的数据,你需要用Numpy load加载数据

问题2:我如何将多个Numpy数组保存到一个文件中?

你要使用Numpy savez而不是Numpy save。

Numpy savez允许你把多个Numpy数组保存到一个.npy文件中。