Python 将标量提高到矩阵元素的幂次方

Python 将标量提高到矩阵元素的幂次方,python,numpy,Python,Numpy,我想使用numpy计算以下内容: density = 1.474085291*(0.9998541833**h) 其中h是1*12矩阵。我希望基数为0.9998541833,幂(指数)为矩阵h的元素。 我尝试了文档,但找不到解决方案。非常简单:您似乎已经准备好了代码。只需组成您的阵列h,您就可以开始了: >>> import numpy as np >>> h = np.array([1, 2, 3, 4, 5, 6]) >>> h arr

我想使用numpy计算以下内容:

density = 1.474085291*(0.9998541833**h)
其中
h
1*12矩阵
。我希望基数为0.9998541833,幂(指数)为矩阵
h
的元素。
我尝试了文档,但找不到解决方案。

非常简单:您似乎已经准备好了代码。只需组成您的阵列
h
,您就可以开始了:

>>> import numpy as np
>>> h = np.array([1, 2, 3, 4, 5, 6])
>>> h
array([1, 2, 3, 4, 5, 6])
>>> density = 1.474085291*(0.9998541833**h)
>>> density
array([ 1.47387034,  1.47365543,  1.47344055,  1.47322569,  1.47301087,
        1.47279608])

如果“h”被定义为np.matrix呢?@Ehsan我建议将解决方案改为这个。此处无需使用
full
功能。此外,我建议您阅读有关numpy广播的内容。您应该显示错误。如果
h
是常规numpy数组,那么代码应该可以工作。只有当
h
np.matrix
时,
**
才有问题。但是
np.power(.99,h)
仍然有效。这是另一个避免使用
np.matrix
的原因,如果你真的不需要它,
np.matrix
的问题是它重新定义了
**
\uuuu pow\uuuuu
)为矩阵幂运算符,
np.linalg.matrix\u power
。如
np.矩阵(眼睛(3))**4
。同样地,
*
被重新定义为矩阵乘法(如
np.dot
)。
np.array(base)**h
应该足够了。@hpaulj,难道不能在引擎盖下创建一个完整的h.shape数组吗?在性能上会有一些不同吗?如果我错了,请纠正我,但我猜base**h只是语法上的糖分。广播完整的
h数组时,shape
是不必要的。
base
以不需要拷贝的方式复制<代码>基本**h被翻译成
base.\uuu pow\uuuu(h)
base = 0.9998541833
density = 1.474085291 * np.array(base)**h