NumPy是否有一个内置的逐元素矩阵模幂实现?

3

numpy是否有矩阵模幂的内置实现?

(正如用户2357112所指出的那样,我实际上正在寻找逐元素的模归约)

对于常规数字,一种进行一次模幂运算的方法是使用平方取幂(https://en.wikipedia.org/wiki/Exponentiation_by_squaring),每步都进行模归约。我想知道是否有类似的内置解决方案用于矩阵乘法。我知道我可以轻松地编写代码来模拟这个过程,但我想知道是否有内置的解决方案。


我不知道有任何矩阵模运算。你需要一个逐元素的模数吗?(你是否想在有限域中执行矩阵运算?) - user2357112
是的,那正是我想做的!抱歉,我误以为矩阵模意味着逐元素取模。 - Ninja_Coder
1
请参见 https://github.com/numpy/numpy/issues/8804。 - user6655984
谢谢!有没有办法将您的评论作为被采纳的答案(或以其他方式关闭问题)? - Ninja_Coder
1个回答

3

目前NumPy中没有内置模幂运算(GitHub问题)。实现最简单/懒惰的方法是使用frompyfunc函数

modexp = np.frompyfunc(pow, 3, 1)
print(modexp(np.array([[1, 2], [3, 4]]), 2, 3).astype(int))

打印

[[1 1]
 [0 1]]

当然,这比本地的NumPy慢,并且我们得到了一个dtype为object的数组(因此添加了astype(int))。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接