您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 具有无穷大的复数的numpy平均值

5b51 2022/1/14 8:22:12 python 字数 1607 阅读 535 来源 www.jb51.cc/python

numpy似乎不是复杂无穷大的好朋友 虽然我们可以评估: In[2]: import numpy as np In[3]: np.mean([1, 2, np.inf]) Out[3]: inf 以下结果更加繁琐: In[4]: np.mean([1 + 0j, 2 + 0j, np.inf + 0j]) Out[4]: (inf+nan*j) ...\_methods.py:80: Runti

概述

虽然我们可以评估:

In[2]: import numpy as np

In[3]: np.mean([1,2,np.inf])
Out[3]: inf

以下结果更加繁琐:

In[4]: np.mean([1 + 0j,2 + 0j,np.inf + 0j])
Out[4]: (inf+nan*j)
...\_methods.py:80: RuntimeWarning: invalid value encountered in cdouble_scalars
  ret = ret.dtype.type(ret / rcount)

我不确定想象中的部分对我有意义.但如果我错了,请发表评论.

有关与numpy中复杂无穷大相互作用的任何见解?

为了计算平均值,我们将总和除以实数.由于类型促销,这种划分会导致问题(见下文).为了避免类型提升,我们可以分别为总和的实部和虚部手动执行此除法:

n = 3
s = np.sum([1 + 0j,np.inf + 0j])
mean = np.real(s) / n + 1j * np.imag(s) / n
print(mean)  # (inf+0j)

合理

这个问题与numpy无关,而与复杂分裂的执行方式无关.观察到((1 0j)(2 0j)(np.inf 0j))/(3 0j)也导致(inf nanj).

结果需要分成真实和图像部分.对于除法,即使你除以实数,操作数也会被提升为复数.所以基本上这个部门是:

a + bj
--------
 c + dj

divisoin操作不知道d = 0.因此,要将结果分成实数和虚数,它必须摆脱分母中的j.这是通过将分子和分母与复共轭相乘来完成的:

a + bj     (a + bj) * (c - dj)     ac + bd + bcj - adj
-------- = --------------------- = ---------------------
 c + dj     (c + dj) * (c - dj)        c**2 + d**2

现在,如果a = inf且d = 0,则术语a * d * j = inf * 0 * j = nan * j.

总结

以上是编程之家为你收集整理的python – 具有无穷大的复数的numpy平均值全部内容,希望文章能够帮你解决python – 具有无穷大的复数的numpy平均值所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶