在numpy tutorial from Scipy中,在教授numpy数组的奇特索引时,我得到了以下说明图。
由于这里没有给出有关此特定数组的其他说明,因此我使用
创建了该数组 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],依此类推。
我正试图了解其机制。深入的答案将不胜感激。
答案 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)
符合预期