从变量中的索引获取numpy数组中的值

3

我试图访问一个多维numpy数组中的值。当您知道所有内容时,这可以很容易地完成,例如:

T = numpy.arrange(9).reshape(3, 3) T[2, 2]

它会返回8,这正是我想要的。 现在,假设[2, 2]存储在index变量中。我该如何使用存储在index中的索引获取T中的值? 我想做的是T[index],但它返回最后一行两次(非常合乎逻辑,但不是我想要的)。

谢谢!


5
尝试使用ind = tuple(2,2); x[ind] - hpaulj
谢谢,完美运作! - clementescolano
1个回答

2

请尝试

ind=tuple(2,2)
x[ind]

x[2,2]x[(2,2)] 是等价的,都可以被转换成方法调用:x.__getitem__((2,2))

一些 numpy 函数会将索引构建为列表或数组,然后将其转换为元组以供索引使用。


如果您想同时访问多个值,请确保使用一个由两个数组组成的2元组:第一个用于x值,第二个用于y值。如果您有一个以p=[[x0,y0],[x1,y1], ... ]格式给出的索引列表,针对2D数组D,只需使用indx=tuple(np.transpose(p))即可得到([x0,x1,..],[y0,y1,...]),并通过D[indx]访问。 - pas-calc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接