matrix\*\*2 在 python/numpy 中是什么意思?

新手上路,请多包涵

我正在阅读的一些代码中有一个 python ndarray temp,它遇到了这个问题:

 x = temp**2

这是点方阵(即相当于m.*m)还是矩阵方阵(即m必须是方阵)?特别是,我想知道我是否可以摆脱这段代码中的转置:

 temp = num.transpose(whatever)
num.sum(temp**2,axis=1))

把它变成这样:

 num.sum(whatever**2,axis=0)

这将至少为我节省 0.1 毫秒,显然值得我花时间。

谢谢! \*\* 运算符是不可搜索的,我什么都不知道!一种

原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 459
2 个回答

它只是每个元素的平方。

 from numpy import *
a = arange(4).reshape((2,2))
print a**2

印刷

[[0 1]
 [4 9]]

原文由 tom10 发布,翻译遵循 CC BY-SA 2.5 许可协议

您应该阅读 NumPy for Matlab Users 。那里提到了逐元素幂运算,您还可以看到在 numpy 中,一些运算符不同地应用于 arraymatrix

 >>> from numpy import *
>>> a = arange(4).reshape((2,2))
>>> print a**2
[[0 1]
 [4 9]]
>>> print matrix(a)**2
[[ 2  3]
 [ 6 11]]

原文由 u0b34a0f6ae 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题