numpy.arctanh(x) for x >= 1 returns NaN 但我想要复数

numpy.arctanh(x) for x >= 1 returns NaN but I want complex

当我对 x >= 1 执行操作 numpy.arctanh(x) 时,它 returns nan,这很奇怪,因为当我在 Wolfram|alpha 中执行操作时,它 returns 复杂的值,这是我的应用程序所需要的。 有谁知道我可以做些什么来防止 Numpy 抑制复数值?

+0j 添加到您的实数输入中,使其成为复数。

Numpy 正在遵循格言 "Garbage in, Garbage out."

的变体

飘进来,飘出去。

>>> import numpy as np
>>> np.sqrt(-1)
__main__:1: RuntimeWarning: invalid value encountered in sqrt
nan

复杂的输入,复杂的输出。

>>> numpy.sqrt(-1+0j)
1j
>>> numpy.arctanh(24+0j)
(0.0416908044695255-1.5707963267948966j)