2017-08-20 46 views
-2
import numpy as np 

a = np.array([[1,2], [3, 4], [5, 6]]) 

print(a[[0, 1, 2], [0, 1, 0]]) # Prints "[1 4 5]" 

print(a[[0, 0], [1, 1]]) # Prints "[2 2]" 

我不明白为什么它会导致[1 4 5][2 2]整型数组索引蟒蛇

+0

您的预期产出是多少? – Adi219

+0

我对此没有任何期望。我想知道为什么会这样结果 – BETUL

回答

0

认为它是二维数组访问。当给出一个二维数组的工作原理如下

[ 1 2 ] 
[ 3 4 ] 
[ 5 6 ] 

numpy的索引:当你初始化你得到你的二维数组的形式输入你的行索引列表,则列索引列表。在语义上,您的第一个索引检索语句是说“从0行检索元素0,从行1检索元素1,从行2检索元素0”,其对应于[1 4 5]。然后你可以找出为什么你得到[2 2]的第二个陈述。

你可以阅读更多关于这个高级索引位置:https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#integer-array-indexing

2

因为你用切片索引阵列

a[[0, 1, 2], [0, 1, 0]]相当于

a[0, 0] # 1 
a[1, 1] # 4 
a[2, 0] # 5 

a[[0, 0], [1, 1]]相当于两倍a[0, 1]

更多关于Numpy索引here

+0

好吧。非常感谢。我明白。 – BETUL

+0

所以也许upvote或接受答案... – FabienP