2013-07-18 47 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

相关问题