numpy 数组中负数的立方根返回 nan

use*_*398 2 python numpy

来自 Numpy 文档:

>>> a = np.arange(10)**3
>>> a
array([  0,   1,   8,  27,  64, 125, 216, 343, 512, 729])
>>> a[2]
8
>>> a[2:5]
array([ 8, 27, 64])
>>> a[:6:2] = -1000    # equivalent to a[0:6:2] = -1000; from start to position 6, exclusive, set every 2nd element to -1000
>>> a
array([-1000,     1, -1000,    27, -1000,   125,   216,   343,   512,   729])
>>> a[ : :-1]                                 # reversed a
array([  729,   512,   343,   216,   125, -1000,    27, -1000,     1, -1000])
>>> for i in a:
...     print(i**(1/3.))
...
nan
1.0
nan
3.0
nan
5.0
6.0
7.0
8.0
9.0
Run Code Online (Sandbox Code Playgroud)

有人能给我解释一下最后一行代码吗?如何i to the power of 1/3等于这些数字?

例如-1000^1/3 = nan?我跳过了哪一部分?

小智 5

numpy 中有内置函数来查找立方根。看一下这个:

print(np.cbrt(a))
Run Code Online (Sandbox Code Playgroud)

你的输出将是:

[-10.   1. -10.   3. -10.   5.   6.   7.   8.   9.]
Run Code Online (Sandbox Code Playgroud)