Python 如何在以索引和值为参数的函数中为多维数组元素赋值

Python 如何在以索引和值为参数的函数中为多维数组元素赋值,python,numpy,variable-assignment,multidimensional-array,Python,Numpy,Variable Assignment,Multidimensional Array,我正在尝试做一些简单的事情(我想)。然而,我显然不明白发生了什么 我有一个创建多维数组的类 我希望方法通过将数组索引和值传递给类的方法来获取和设置数组元素 这是代码 from numpy import * class Space(): def __init__(self, shape, mode): self.space = ndarray(shape, dtype=list ) self.mode = mode def get(self,

我正在尝试做一些简单的事情(我想)。然而,我显然不明白发生了什么

  • 我有一个创建多维数组的类
  • 我希望方法通过将数组索引和值传递给类的方法来获取和设置数组元素
  • 这是代码

    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])
    

这应该是一个直截了当的过程。很明显,我不理解这里一些相当基本的东西。如果您能解释正在发生的事情以及应该做什么,我们将不胜感激。谢谢。

当使用语法
a[i,j,k]
访问多维数组项时,方括号运算符内的参数实际上是元组,而不是列表。这相当于写
a[(i,j,k)]
,但在方括号内可以省略括号。调用常规函数时,它们是必需的

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

我建议重写
\uuu getitem\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?给出完整的堆栈跟踪。