首页 > 解决方案 > Numpy 和 Matplotlib 错误与非常小的示例

问题描述

我已经成功地一起使用了 numpy 和 matplotlib 一段时间了。突然,我在一起使用它们时遇到了不寻常的错误。以下是一个最小示例:

import numpy as np
import matplotlib.pyplot as plt
fig,ax = plt.subplots(1,1)
x = np.eye(10)
u = np.linalg.svd(x)
plt.show()

如果我运行一次代码,它就可以工作。如果我再次运行代码,我会得到一个异常:LinAlgError:SVD 没有收敛。奇怪的是,当对 pyplot 的调用被删除时,这种行为就消失了:

import numpy as np
import matplotlib.pyplot as plt
#fig,ax = plt.subplots(1,1)
x = np.eye(10)
u = np.linalg.svd(x)
#plt.show()

我在 numpy 版本 18.1 和 18.5 的两个不同 python 环境中尝试了这个。我想知道是否有人有任何可能导致这种行为的信息。

编辑:我在 jupyter 笔记本中运行这两个代码块,只有这些代码行,没有别的。为了重现交互式解释器中的行为,您需要在运行之间添加 plt.show() 行。我编辑了帖子以包含这一行。

编辑:matplotlib 3.3.2、numpy 18.1 或 18.5,我可以使用 python 3.8.1 或 3.6.8

标签: pythonnumpymatplotlib

解决方案


推荐阅读