索引到任意维度的嵌套数组?

时间:2015-12-10 05:57:58

标签: python

我目前有一个n维的嵌套数组,其中n是可变的。 n的值在运行时确定。

给定输入索引(i1,i2,...,in),如何在此特定索引处访问嵌套数组中的项目?

例如,考虑n = 3和3X3X3阵列的情况。

nested_array = [
  [[0,0,0],[0,0,0],[0,0,0]]
  [[0,0,0],[0,0,0],[0,0,0]]
  [[0,0,0],[0,0,0],[0,0,0]]
]

我想调用方法:

array.insert((1,1,1), new_item)

我想将index(1,1,1)处的项目设置为new_item。

据我所知,我无法使用数组[1] [1] [1]索引数组,因为维度在运行时才会被识别。

1 个答案:

答案 0 :(得分:2)

numpy.array可以array[index]访问,其中index是元组。

如果你不能使用numpy,你可以这样得到array[index[0]][index[1]][...]

reduce(lambda x, y: x[y], index, array)

并设置如下:

reduce(lambda x, y: x[y], index[:-1], array)[index[-1]] = new_value
可以使用lambda x, y: x[y]模块中的getitem替换

运算符operator