如何用NumPy将一组数字提升到一个幂?

时间:2018-04-01 02:58:42

标签: python python-3.x numpy

NumPy具有loglog2log10方法,可以执行矢量化日志库e / 2/10(分别)。但是,为了进行逆运算(取幂),我只看到exp。为什么没有exp2 / exp10 / etc?

我尝试过使用np.power(10, nums),但它不会让我屈服于负面力量。 10 ** nums也不起作用。

1 个答案:

答案 0 :(得分:2)

如果您使用10 ** nums dtype,它应该可以与float一起使用。否则它将创建一个整数数组:

>>> 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])

您也可以使用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])