变量浏览器#

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

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数据框、序列等多种数据类型;并能一键绘制和可视化这些数据。

字符串#

当字符串变量长度超过40个字符时,您可以双击它以在文本编辑器中查看其值,从而更方便地进行修改。

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-style syntax设置所需的格式。

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

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

数据框#

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

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

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

Object explorer showing dataframe