Python:如何在某些索引位置获取多维数组的值?

如果我有一个多维 numpy 数组,例如:


a = [[0 1 2]

     [3 4 5]

     [6 7 8]]

如何一步获得某些索引位置的值?例如,如果要定义成对的索引,例如:


indices = [[0,0], [1,1], [2,2]]

我想:


a[indices] = [0, 4, 8]

请注意,这确实适用于一维数组(Python:如何在某些索引位置获取数组的值?),但我看不到如何让它在多个维度上工作。我正在使用 Python 3.7。


紫衣仙女
浏览 214回答 2
2回答

POPMUISE

正如您链接的一维答案一样,您可以在二维中优雅地执行此操作numpy:a = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])rows, columns = zip([0, 0], [1, 1], [2, 2])print(a[rows, columns])的输出print将是:array([0, 4, 8])

烙印99

改编自 Prasanna 的评论a = [[0 1 2]     [3 4 5]     [6 7 8]]indices = [[0,0], [1,1], [2,2]]a[indices] = [a[pair[0]][pair[1]] for pair in indices]这通过使用 for each 循环,遍历索引数组中的每一对,然后将每个给定索引处的值添加到最终结果中来工作。pair是索引数组中的每一对,并表示 中的每一索引对indices。在您的示例中,它将[0,0]在第一次迭代、[1,1]第二次和[2,2]第三次迭代中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python