Numpy.arctanh(x) для x >= 1 возвращает NaN, но я хочу, чтобы сложный

Когда я выполняю операцию numpy.arctanh(x) для x >= 1, он возвращает nan, что является нечетным, потому что, когда я выполняю операцию во Wolfram | alpha, он возвращает сложные значения, которые мне нужны для моего выражение. Кто-нибудь знает, что я могу сделать, чтобы Numpy не подавлял сложные значения?

Ответ 1

Добавьте +0j к вашим реальным входам, чтобы сделать их комплексными числами.

Numpy следует за изменением максимы "Мусор в мусоре".

Поплавок, поплавок.

>>> 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)