Python 3.6: неопределенность в третьем корне десятичных чисел - PullRequest
0 голосов
/ 12 декабря 2018

Переменная aa, тип numpy.float (64) имеет следующее значение:

In: aa
Out: -0.11077542882130173

Получение корня третьего порядка этого числа создает неоднозначность:

  1. Прямой ввод приводит к правильному результату

    In: -0.11077542882130173**(1/3)
    Out: -0.4802652307616457
    
  2. Третий корень aa напрямую генерирует предупреждение и возвращает nan:

    In: aa**(1/3)
    __main__:1: RuntimeWarning: invalid value encountered in double_scalars
    Out: nan
    
  3. Преобразование в число с плавающей точкой генерирует комплексное число:

    aa = float(aa)
    
    In: aa
    Out: -0.11077542882130173
    
    In: aa**(1/3)
    Out: (0.2401326153808229+0.41592189039398075j)
    

Кто-нибудь получил представление о том, из-за чего возникает эта двусмысленность, и как я могу получить первый результат, не вводя число в?

...