我对此感到非常困惑。也许有人可以为我澄清结果:
import numpy as np
a = np.array([ 1.97635114, 1.72790352, 1.51046621, 1.25543557, 1.01718594,
0.77378732, 0.53452001, 0.29627038, 0.05802074, -0.18022889,
-0.41847852])
e = -1.377404416
a**e
Run Code Online (Sandbox Code Playgroud)
产生
array([ 0.39126903, 0.47080342, 0.56661974, 0.73100461, 0.97680242, 1.42368231, 2.369756 , 5.34193942, 50.47146058, nan, nan])
[item**e for item in a]
Run Code Online (Sandbox Code Playgroud)
给我
[0.39126902696026267, 0.4708034172873469, 0.5666197367017416, 0.7310046117775049, 0.9768024208132248,
1.4236823077174863, 2.369756002432608, 5.341939422216064,
50.47146057971127, nan, nan]
但
-0.41847852**e
Run Code Online (Sandbox Code Playgroud)
产量
-3.3197780173988067
Run Code Online (Sandbox Code Playgroud)
为什么numpy无法计算这两个数字的指数?
负数的根没有定义为实数。python提供的内容如下:-(0.41847852**e)由于运算符的优先级。尝试使用括号(-0.41847852)**e:
>>> (-1.247220271970189+3.0765837674262926j)
它给出一个复数。这就是为什么numpy将它们计算为的原因nan。如果使用创建numpy数组dtype='complex',numpy也可以计算它们。
| 归档时间: |
|
| 查看次数: |
38 次 |
| 最近记录: |