2013-07-18 48 views
0

我想做一些簡單的(我認爲)。但是,我顯然不明白髮生了什麼事情。我如何分配一個值到索引和值作爲參數的函數中的多維數組元素

  • 我有一個創建一個多維數組
  • 我想的方法來獲得,並通過將數組索引和價值類的方法設置數組元素的類。
  • 這是代碼。

    from numpy import * 
    
    class Space(): 
        def __init__(self, shape, mode): 
         self.space = ndarray(shape, dtype=list) 
         self.mode = mode 
    
        def get(self, elem) : 
         return(self.space[elem]) 
    
        def set(self, elem, val): 
         self.space[elem] = val   
    shape = [2,2,2] 
    s = Space(shape, 'wrap') 
    s.set([1,1], [2,2]) 
    print s.get([1,1]) 
    

這應該是一個簡單的過程。我顯然不理解這裏相當基本的東西。對於正在發生的事情和做什麼的解釋將不勝感激。謝謝。

+0

什麼是錯誤?給出完整的堆棧跟蹤。 – user2357112

回答

2

使用語法a[i, j, k]訪問多維數組的項目時,方括號運算符內的參數實際上是一個元組,而不是一個列表。這相當於寫作a[(i, j, k)],但方括號內允許您省略括號。當調用常規函數時,它們是強制性的。

s.set((1, 1), [2, 2]) 
print s.get((1, 1)) 

我建議壓倒一切__getitem__()__setitem__()代替,這樣你就可以使用常規的方括號運營商自定義類。

+0

感謝您的明確解釋和建議。 – user2253054

相關問題