Согласно моим результатам, numpy действительно вычисляет правильные результаты:
Traceback from my console:
import numpy as np
xi = np.array([[
[2.51325641-2.34963293j, 2.17949212-1.57079633j, 2.51325641-0.79195972j],
[ 2.15322703+3.14159265j, 0.00000000+1.57079633j, 2.15322703+0.j ],
[ 2.51325641+2.34963293j, 2.17949212+1.57079633j , 2.51325641+0.79195972j]],
[[ 2.44651048-2.3486959j , 2.11452586-1.57079633j , 2.44651048-0.79289676j],
[ 2.08450333+3.14159265j , 0.00000000+1.57079633j , 2.08450333+0.j ],
[ 2.44651048+2.3486959j , 2.11452586+1.57079633j , 2.44651048+0.79289676j]]])
xi
Out[7]:
array([[[2.51325641-2.34963293j, 2.17949212-1.57079633j,
2.51325641-0.79195972j],
[2.15322703+3.14159265j, 0. +1.57079633j,
2.15322703+0.j ],
[2.51325641+2.34963293j, 2.17949212+1.57079633j,
2.51325641+0.79195972j]],
[[2.44651048-2.3486959j , 2.11452586-1.57079633j,
2.44651048-0.79289676j],
[2.08450333+3.14159265j, 0. +1.57079633j,
2.08450333+0.j ],
[2.44651048+2.3486959j , 2.11452586+1.57079633j,
2.44651048+0.79289676j]]])
np.exp(xi)
Out[8]:
array([[[-8.67181417e+00-8.78636873e+00j,
-2.83389303e-08-8.84181454e+00j,
8.67181420e+00-8.78636870e+00j],
[-8.61260674e+00+3.09174756e-08j,
-3.20510345e-09+1.00000000e+00j,
8.61260674e+00+0.00000000e+00j],
[-8.67181417e+00+8.78636873e+00j,
-2.83389303e-08+8.84181454e+00j,
8.67181420e+00+8.78636870e+00j]],
[[-8.10419466e+00-8.22665531e+00j,
-2.65563855e-08-8.28565627e+00j,
8.10419461e+00-8.22665536e+00j],
[-8.04059697e+00+2.88640789e-08j,
-3.20510345e-09+1.00000000e+00j,
8.04059697e+00+0.00000000e+00j],
[-8.10419466e+00+8.22665531e+00j,
-2.65563855e-08+8.28565627e+00j,
8.10419461e+00+8.22665536e+00j]]])
np.exp(2.17949212-1.57079633j)
Out[9]: (-2.833893031963725e-08-8.84181453742246j)
Я использую Python 3.6.5 (Anaconda Python) , с версией NumPy 1.14.3. Пробовали ли вы проверять результаты на другом компьютере / другом экземпляре python?