我有一个应用程序,我必须做很多(昂贵的)矩阵乘法。这些矩阵中的许多(但不是全部)都有特殊的结构,我很容易为其定义自定义数据表示和自定义矩阵乘法例程。我希望能够将这些与任意矩阵混合并匹配,这些矩阵表示为普通2d数组。在
举一个最简单的例子,我想做这样的事情:
import numpy as np
class IdentityMatrix:
def __matmul__(self, other):
return other
def __rmatmul__(self, other):
return other
__array_priority__ = 10000
其中IdentityMatrix
知道它对左边或右边的矩阵起作用时什么也不做。我希望将__array_priority__
设置为一个较大的数字,当另一个参数是ndarray时,它将始终覆盖ndarray的矩阵乘法,但这不起作用:
反转输入会产生相同的错误。令人沮丧的是这确实是seem to work for operations other than matmul。在
有没有什么简单的方法可以按照我想要的方式覆盖matmul?在
谢谢!在
目前没有回答
相关问题 更多 >
编程相关推荐