2024-04-23 07:12:43 发布
网友
我注意到了复杂无穷的有趣结果。你知道吗
In [1]: import numpy as np In [2]: np.isinf(1j * np.inf) Out[2]: True In [3]: np.isinf(1 * 1j * np.inf) Out[3]: True In [4]: np.isinf(1j * np.inf * 1) Out[4]: False
这与nan有关。但最终的结果很奇怪。你知道吗
nan
它是一个小虫子吗?有什么我应该改变的吗?你知道吗
它不是一个小虫子。numpy.inf是一个正则Python浮点,奇怪的结果来自正则Python复数乘法算法,即this:
numpy.inf
Py_complex _Py_c_prod(Py_complex a, Py_complex b) { Py_complex r; r.real = a.real*b.real - a.imag*b.imag; r.imag = a.real*b.imag + a.imag*b.real; return r; }
当输入有无限个实部或虚部时,复数乘法往往导致inf-inf减法和0*inf乘法,从而导致结果中的nan分量。我们可以看到1j * numpy.inf有一个nan成分和一个inf成分:
inf-inf
0*inf
1j * numpy.inf
inf
In [5]: 1j * numpy.inf Out[5]: (nan+infj)
将结果乘以1产生两个nan分量:
1
In [4]: 1j * numpy.inf * 1 Out[4]: (nan+nanj)
它不是一个小虫子。
numpy.inf
是一个正则Python浮点,奇怪的结果来自正则Python复数乘法算法,即this:当输入有无限个实部或虚部时,复数乘法往往导致
inf-inf
减法和0*inf
乘法,从而导致结果中的nan
分量。我们可以看到1j * numpy.inf
有一个nan
成分和一个inf
成分:将结果乘以
1
产生两个nan
分量:相关问题 更多 >
编程相关推荐