2017-08-20 81 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