如何使用 NumPy 将一组数字提高到幂?

Jam*_* Ko 2 python numpy python-3.x

NumPy 具有loglog2log10方法,可以执行矢量化对数基数 e / 2 / 10(分别)。但是,对于进行逆运算(求幂),我只看到exp. 为什么没有exp2/exp10的/ etc?

我试过使用np.power(10, nums),但它不会让我提升到负幂。10 ** nums也不起作用。

Osc*_*min 7

10 ** nums如果您使用floatdtype,它应该可以正常工作。否则它将创建一个整数数组:

>>> a = numpy.array([-1, 0, 1, 2, 3], dtype=int)
>>> 2 ** a
array([0, 1, 2, 4, 8])
>>> 10 ** a
array([   0,    1,   10,  100, 1000])
>>> a = numpy.array([-1, 0, 1, 2, 3], dtype=float)
>>> 10 ** a
array([  1.00000000e-01,   1.00000000e+00,   1.00000000e+01,
         1.00000000e+02,   1.00000000e+03])
Run Code Online (Sandbox Code Playgroud)

您还可以float通过使用10.0代替来强制执行10

>>> a = numpy.array([-1, 0, 1, 2, 3], dtype=int)
>>> 10.0 ** a
array([  1.00000000e-01,   1.00000000e+00,   1.00000000e+01,
         1.00000000e+02,   1.00000000e+03])
Run Code Online (Sandbox Code Playgroud)