除负数之外的输入可能产生警告"无效值"用numpy.sqrt?

时间:2018-06-04 13:50:50

标签: python numpy absolute

我有一个np.sqrt()代码段没有检查负值,所以我可以理解得到了警告。我以为我修好了,但我又找到了一个:

RuntimeWarning: invalid value encountered in sqrt
  data_std = np.sqrt(np.absolute(data_std))

除了np.sqrt

以外,是否还有其他无效数字?

1 个答案:

答案 0 :(得分:0)

好吧,让我们看一下您可以输入到sqrt的可能值。

考虑欧几里得平面上的数字,并且numpy具有两个特殊值:

  • 正实数,例如1> 1.0
  • 负实数,例如-1> RuntimeWarning : invalid value encountered in sqrt
  • 正假想数,例如-1j> (0.7071067811865476-0.7071067811865475j) 负虚数,例如1j> (0.7071067811865476+0.7071067811865475j)
  • inf> inf
  • -inf> RuntimeWarning: invalid value encountered in sqrt
  • inf * 1j> (inf+infj)
  • inf * -1j> (inf-infj)
  • nan> nan

因此,似乎可能导致此问题的唯一其他值是-np.inf,无论如何,您可能会将其视为在负数示例中。