Jupyter Notebooks 中的变量未重置是否有问题?

Do I have a problem with variables not resetting in Jupyter Notebooks?

提问人:swimmer 提问时间:8/10/2023 最后编辑:swimmer 更新时间:8/10/2023 访问量:67

问:

我正在 Jupyter Notebook 的 Python 笔记本中运行算法。它转换 numpy 数组中的数据,并将所有内容存储在 csv 文件中。

该算法很好地转换了数据,但是,仍然存在意想不到的点。我在算法中找不到任何错误,但它没有按预期工作:

  • 我已经多次使用不同的数据运行该算法,这些数据存储到名称不变的变量中。在对不同的数据运行算法之前,我总是使用“重新启动并清除输出”来清除命名空间。例如,我会在算法的第一次运行时将一个numpy数组存储到变量A中,然后单击“重新启动并清除输出”。然后,我将在第二次运行时再次将另一个不同值的numpy数组存储到变量A中,然后单击“全部运行”。然而,似乎只有在旧数据没有被完全清除的情况下,一些转换后的数据才有意义。
  • 通常,当我运行算法时,输出csv文件将被覆盖,因为我每次都将其保存为名称“data.csv”。但是,今天我运行算法后,有两个 data.csv 文件。这在以前从未发生过,但意外转换数据的问题总是会发生。

每当我使用“重新启动并清除输出”时,笔记本都会按预期工作。之后运行输出“交互式命名空间为空”,提示数字返回到 。我仍然想知道问题是否出在变量上,所以我将它们全部重命名。意想不到的数据仍然存在。我现在陷入了死胡同,重置变量有问题吗?否则我该如何测试?%whosln[1]

作为更新:我的代码包括将二维数组广播到第三维,并在轴 2 上求和。我读到这可能会产生错误,这些错误可能会加起来,并且我使用的数据包含数万个点。因此,我指定了 dtype=“float64” 以提高精度,但由于某种原因,这增加了错误。这是否意味着我的算法不稳定?

python numpy 变量 jupyter-notebook 命名空间

评论

0赞 Matthias Huschle 8/10/2023
在不重新启动内核的情况下重新运行所有单元格,您的结果是否完全可重现?
0赞 swimmer 8/10/2023
@MatthiasHuschle 是的。作为更新:我的代码包括将二维数组广播到第三维,并在轴 2 上求和。我读到这可能会产生错误,这些错误可能会加起来,并且我使用的数据包含数万个点。所以我指定了 dtype=“float64” 来提高精度,但由于某种原因增加了错误?但是,这是唯一改变输出的东西。

答: 暂无答案