用numpy数组指数任意数字

时间:2018-11-22 05:01:39

标签: python numpy

我知道np.exp2(x)存在,它可以计算2^x,其中x是一个numpy数组,但是,我正在寻找一种执行K^x的方法,其中K是任意数字。 是否有任何优雅的方法可以做到,而不是将K拉伸成x的形状并进行分段指数计算?

2 个答案:

答案 0 :(得分:2)

只需使用标准的Python幂运算符**

K**x

例如,如果您拥有:

x = np.array([1,2,3])
K = 3

print(K**x)

输出为:

[ 3  9 27]

注释

对于Python类,二进制**运算符的行为是通过__pow____rpow____ipow__魔术方法({{1}的实际情况)实现的}稍微复杂一点,因为它是在C层中实现的,但这实际上并不重要。对于Numpy数组,这些魔术方法似乎依次调用numpy.power,因此可以预期np.ndarray具有与**相同的行为。特别是

  

请注意,将整数类型提高为负整数次幂将引发ValueError。

答案 1 :(得分:2)

使用numpy,您只需使用numpy.power

arr = numpy.array([1,2,3])
print(numpy.power(3,arr)) # Outputs [ 3  9 27]