我想你可以简单地继承了NumPy的矩阵型,具有一类新的自己的;并且过载__getitem__()
方法来接受元组。像这样的:
class SpecialMatrix(np.matrix):
def __getitem__(self, arg1, arg2, arg3=None):
try:
i, j = arg1
k = arg2
assert(arg3 is None)
x = super(SpecialMatrix, self).__getitem__(i, j, k)
except TypeError:
assert(arg3 is not None)
return super(SpecialMatrix, self).__getitem__(arg1, arg2, arg3)
并做一些类似的__setitem__()
。
我不知道是否__getitem__()
需要多个参数,如我在这里展示,或者它需要一个元组,或者什么。我写这个答案时没有NumPy,对不起。
编辑:我重新编写了使用super()
而不是直接调用基类的示例。自从我在Python中进行子类化以来,已经有一段时间了。
编辑:我只是看着接受的答案。这完全是做到这一点的方法。如果有人发现它有教育意义,我会留下来,但最简单的方法是最好的。
matrix [a,b] [c]? –
补充说asnwer,我会评分它。谢谢! –