为什么使用matplotlib打印某些内容会改变具有复杂条目的numpy.linalg.inv反转的第一个结果,以及如何避免这种情况?

为什么使用matplotlib打印某些内容会改变具有复杂条目的numpy.linalg.inv反转的第一个结果,以及如何避免这种情况?,numpy,matplotlib,matrix-inverse,inversion,Numpy,Matplotlib,Matrix Inverse,Inversion,我正在为我的一个项目编写代码,第一次运行代码时发现代码中出现了一些奇怪的nan值,第二次运行同一行代码时这些值消失了。寻找原因花了我几个小时,我将其归结为以下难以置信的情况: 绘制一些matplotlib图形后,第一次通过numpy.linalg.inv运行矩阵求逆(使用复杂条目)时,会更改矩阵求逆的结果(并显示一些nan值)。当再次计算相同的反演(或具有复数值的不同反演)时,可以恢复正确的矩阵反演结果(无nans) 这些简单的代码行应该足以重现问题: import numpy as np im

我正在为我的一个项目编写代码,第一次运行代码时发现代码中出现了一些奇怪的
nan
值,第二次运行同一行代码时这些值消失了。寻找原因花了我几个小时,我将其归结为以下难以置信的情况:

绘制一些matplotlib图形后,第一次通过
numpy.linalg.inv
运行矩阵求逆(使用复杂条目)时,会更改矩阵求逆的结果(并显示一些
nan
值)。当再次计算相同的反演(或具有复数值的不同反演)时,可以恢复正确的矩阵反演结果(无
nan
s)

这些简单的代码行应该足以重现问题:

import numpy as np
import matplotlib.pyplot as plt

print(np.linalg.inv([[1+0j,0],[0,1]]))

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
plt.show()    

print(np.linalg.inv([[1+0j,0],[0,1]]))
print(np.linalg.inv([[1+0j,0],[0,1]]))
我得到以下结果:

[[1.+0.j 0.+0.j]
 [0.+0.j 1.+0.j]]

**<here sits the canavas of the empty plot>**

[[nan+nanj  0. +0.j]
 [nan +0.j  1. +0.j]]
[[1.+0.j 0.+0.j]
 [0.+0.j 1.+0.j]]
有关更多信息,请参阅MKL numpy正在使用的文件(由
np.show\u config()
生成)


什么软件包版本?什么蟒蛇?什么系统?我无法在Win10中使用ipython 7.16.1、python 3.8.3、numpy 1.18.5、matplotlib 3.2.2在普通python中复制相同的交易,没有ipython。感谢您的快速回复,我添加了我安装的所有python包。我也会在没有jupyther笔记本的情况下尝试它。对于我来说,它也会发生在一个简单的ipython环境中
# Name                    Version                   Build  Channel
backcall                  0.2.0                      py_0
blas                      1.0                         mkl
ca-certificates           2020.12.8            haa95532_0
certifi                   2020.12.5        py39haa95532_0
colorama                  0.4.4              pyhd3eb1b0_0
cycler                    0.10.0           py39haa95532_0
decorator                 4.4.2                      py_0
freetype                  2.10.4               hd328e21_0
icu                       58.2                 ha925a31_3
intel-openmp              2020.2                      254
ipython                   7.19.0           py39haa95532_0
ipython_genutils          0.2.0              pyhd3eb1b0_1
jedi                      0.17.2           py39haa95532_1
jpeg                      9b                   hb83a4c4_2
kiwisolver                1.3.0            py39h604cdb4_0
libpng                    1.6.37               h2a8f88b_0
libtiff                   4.1.0                h56a325e_1
lz4-c                     1.9.2                hf4a77e7_3
matplotlib                3.3.2                haa95532_0
matplotlib-base           3.3.2            py39h35d3fe4_0
mkl                       2020.2                      256
mkl-service               2.3.0            py39h196d8e1_0
mkl_fft                   1.0.6            py39h054117c_0
mkl_random                1.0.2            py39h848d8c7_0
numpy                     1.19.2           py39h729668d_0
numpy-base                1.19.2           py39hbd0edd7_0
olefile                   0.46                       py_0
openssl                   1.1.1i               h2bbff1b_0
parso                     0.7.0                      py_0
pickleshare               0.7.5           pyhd3eb1b0_1003
pillow                    8.0.1            py39h4fa10fc_0
pip                       20.3.3           py39haa95532_0
prompt-toolkit            3.0.8                      py_0
pygments                  2.7.3              pyhd3eb1b0_0
pyparsing                 2.4.7                      py_0
pyqt                      5.9.2            py39hd77b12b_6
python                    3.9.1                h6244533_2
python-dateutil           2.8.1                      py_0
qt                        5.9.7            vc14h73c81de_0
setuptools                51.0.0           py39haa95532_2
sip                       4.19.13          py39hd77b12b_0
six                       1.15.0           py39haa95532_0
sqlite                    3.33.0               h2a8f88b_0
tk                        8.6.10               he774522_0
tornado                   6.1              py39h2bbff1b_0
traitlets                 5.0.5                      py_0
tzdata                    2020d                h14c3975_0
vc                        14.2                 h21ff451_1
vs2015_runtime            14.27.29016          h5e58377_2
wcwidth                   0.2.5                      py_0
wheel                     0.36.2             pyhd3eb1b0_0
wincertstore              0.2              py39h2bbff1b_0
xz                        5.2.5                h62dcd97_0
zlib                      1.2.11               h62dcd97_4
zstd                      1.4.5                h04227a9_0
blas_mkl_info:
    libraries = ['mkl_rt']
    library_dirs = ['C:/Users/Frederic/anaconda3\\Library\\lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['C:/Users/Frederic/anaconda3\\Library\\include']
blas_opt_info:
    libraries = ['mkl_rt']
    library_dirs = ['C:/Users/Frederic/anaconda3\\Library\\lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['C:/Users/Frederic/anaconda3\\Library\\include']
lapack_mkl_info:
    libraries = ['mkl_rt']
    library_dirs = ['C:/Users/Frederic/anaconda3\\Library\\lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['C:/Users/Frederic/anaconda3\\Library\\include']
lapack_opt_info:
    libraries = ['mkl_rt']
    library_dirs = ['C:/Users/Frederic/anaconda3\\Library\\lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['C:/Users/Frederic/anaconda3\\Library\\include']