我想你可以簡單地繼承了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,我會評分它。謝謝! –