变量探索器#

变量探索器允许您交互式地浏览和管理运行代码时生成的对象。

Spyder Variable Explorer execution with a variable of type list

它显示当前选定IPython 控制台会话的命名空间内容(包括所有全局对象、变量、类实例等),并允许您通过各种基于 GUI 的编辑器添加、删除和编辑它们的值。

Spyder Variable Explorer, with a list of variables and their contents

变量探索器提供每个对象的名称、大小、类型和值的信息。要修改标量变量,如数字、字符串或布尔值,只需在窗格中双击它并输入新值即可。

Spyder Variable Explorer modifying value of a variable

对象查看器#

Spyder 的变量探索器内置支持编辑列表、字符串、字典、NumPy 数组、Pandas DataFrame、Series 等;以及一键绘图和可视化它们。

字符串#

当字符串变量的长度超过四十个字符时,您可以双击它以在文本编辑器中查看其值,以便更轻松地修改它。

Variable Explorer text editor, displaying a long string in a window

字典#

双击字典将显示一个查看器,其中包含每个键及其关联的值。您可以双击任何值以修改它们,如果该值本身是一个对象,则会打开一个新的查看器。

Dictionary editor displaying keys and their types, sizes, and values

列表#

对于列表,主变量探索器会显示前十个值的预览。要查看所有值,请双击列表以打开一个查看器,该查看器将显示列表每个元素的索引、类型、大小和值。与字典一样,您可以双击值进行编辑。

List editor displaying a list, showing one being edited

Numpy 数组#

与列表类似,对于 Numpy 数组,变量探索器会显示其值的预览。双击它们将打开一个查看器,以“热图”形式显示数组值,网格单元格中的每个值都根据其数值量进行着色。您可以通过取消选中查看器中的相应选项来停用背景颜色,如果数组过大以提高性能,则会自动发生。

Array editor array, displaying a "heatmap" of its values

如果数据类型支持,您还可以更改数组值的格式,选择您希望数组显示的十进制位数。为此,点击格式按钮,并在出现的对话框中设置所需的格式,使用标准Printf 风格语法

此外,您可以通过展开或收缩其标题来调整数组的行和列的大小。点击调整大小按钮将自动设置。

Array editor with a 2D int array, showing resizing of columns

DataFrames#

DataFrames,与 Numpy 数组一样,会在查看器中显示,您可以在其中显示或隐藏“热图”颜色,更改格式并手动或自动调整行和列的大小。

Dataframe editor showing data frame "heatmap"

此外,从 Spyder 4 开始,变量探索器在其 DataFrame 检查器中支持 MultiIndex,包括多级别和多维索引。

Dataframe editor showing multi-index support

选项菜单#

变量探索器窗格右上角的选项菜单允许您根据多种不同条件过滤显示的对象。

Spyder Variable Explorer, with options menu

它还允许您显示 Numpy 数组的最小值和最大值,而不是其值的预览。

Variable Explorer showing max and min values of numpy array

工具栏按钮#

变量探索器的工具栏包含多项有用的功能,可影响整个命名空间。例如,您可以将当前会话的数据保存为.spydata文件,以后可以加载该文件以恢复所有存储的变量。

Variable Explorer showing how to save and import data

警告

不应从任何您不完全信任的来源加载任何.spydata文件(理想情况下,只加载您自己保存的文件)。与任何Python pickle一样,它本质上不安全,无法抵御恶意代码,因为它会加载任何 Python 对象并在您的机器上执行任意代码。此外,它不保证在除创建它的环境之外的所有 Python 环境中可靠工作,因此它应仅用作本地持久化格式,而非用于交换。

还有一个按钮可以删除所有显示的变量,以及一个搜索框可以按名称或类型查找对象。

Variable Explorer showing how to search variables

最后,还有一个按钮可以刷新变量探索器的内容,它将更新以显示 IPython 控制台中运行代码的当前状态。

高级功能#

右键单击任何变量即可使用的上下文菜单提供了许多其他选项,用于与各种类型的对象进行交互。这些选项包括重命名、删除或编辑现有变量,以及复制选项,以您在结果对话框中输入的新名称创建其中一个变量的新副本。

Variable Explorer showing duplicating a variable

此外,您可以复制并粘贴变量的值,并以您选择的任何名称将其保存在变量探索器中。这允许您更改粘贴变量的类型,这非常有用,例如,您可以轻松地将列表的元素复制到数组中。

Variable Explorer showing copying list into array

此外,您可以使用插入选项直接在变量探索器中从头创建对象,这允许您输入要插入项的键(应在引号中)和值。除了添加新的顶级变量外,此功能还允许您在字典中创建新键、在列表中创建新元素等等。

Variable Explorer showing insertion of a new variable

对于列表和 Numpy 数组,提供了更高级的选项,包括根据其类型和维度生成其值的图表和直方图。

Plot window showing a plot, generated via the previous options

您甚至可以通过简单地点击相应选项将数组保存到.npy文件,该文件以后可以由 Spyder 或在您的代码中通过numpy.load()加载。

Context menu for an int array, with the Show image option selected

对于二维数组,您也可以将它们显示为图像,将其值视为 RGB 颜色。为此,Spyder 使用 Matplotlib 的颜色映射,这些颜色映射可以轻松更改以符合您的偏好

Interactive image based on the array's data

最后,我们添加了一个上下文菜单操作,可以使用新的对象探索器打开任何对象,即使它们已经有内置查看器(DataFrames、数组等),从而可以更深入地检查这些数据类型的内部工作原理。

Object explorer showing dataframe