用元组进行漂亮的花式索引

时间:2018-09-24 19:11:15

标签: python arrays numpy indexing

numpy tutorial from Scipy中,在教授numpy数组的奇特索引时,我得到了以下说明图。

enter image description here

由于这里没有给出有关此特定数组的其他说明,因此我使用

创建了该数组

a = np.array([[j+i for i in range(0,6)] for j in range(0, 60, 10)])

如果我运行a[(0,1,2,3,4),(1,2,3,4,5)],将得到array([ 1, 12, 23, 34, 45]),与图片一致。但是我不明白元组如何解包到a [0,1],依此类推。

我正试图了解其机制。深入的答案将不胜感激。

1 个答案:

答案 0 :(得分:2)

从本质上讲,所有花哨的索引编制实际上都为您提供了较大数组中的坐标列表。因此,将该图片视为一个大网格,并将您的两个元组视为x坐标和y坐标(它也可以推广到更高的维度)。因此,如果将它们压缩在一起,则会得到:

(x=0, y=1), (x=1, y=2), (x=2, y=3), (x=3, y=4), (x=4, y=5)

如果您阅读图像,将会看到以下内容:

(1, 12, 23, 34, 45)

符合预期