我是一个蟒蛇新手。我对如何动态访问数组元素感到困惑。
我有一个动态获得的列表b = [1,2,5,8],所以它的长度可以变化。借助此列表,我需要将多维数组更新为mArr [1] [2] [5] [8]。列表和数组维度的长度与示例
中给出的匹配基本上,我正在寻找一种技术来访问关于列表“b”的多维数组,如:marr [b]。这个m数组也是动态创建的。
我试着查看numpy的教程但是没有弄清楚解决方案。我错过了什么?
提前致谢。
答案 0 :(得分:2)
如果尺寸为[1,2,5,8]
,则可以为每个尺寸使用数字0, 0..1, 0..4, 0..7
。
Numpy允许您使用元组访问位置:
shape = [1, 2, 5, 8]
pos = [0, 1, 1, 3]
my_array = np.ones(shape)
my_array[tuple(pos)] # will return 1
答案 1 :(得分:1)
您可以创建一个类似的函数:
def array_update(b, marr, value):
if len(b) > 1:
return array_update(b[1:], marr[b[0]], value)
marr[b[0]] = value
给定b = [1,2,5,8],要将mArr [1] [2] [5] [8]的值设置为foo
,您可以调用:
array_update(b, mArr, 'foo')