2017-04-20 132 views
0

你好可以解釋下面的代碼是如何工作的? 導入所需的庫後..numpy布爾索引混淆

>>>features=np.random.rand(150,4) 
>>>features= np.append(features,np.random.randint(3,size=(150,1)),axis=1) 
>>>target=np.array([0,1,2]) 
>>>plt.scatter(features[target == 1,0], features[target == 1,1], marker='o', c='r') 

我得到第一個和最後一欄有1「功能」第二列的一個情節。但我無法理解如何。

據我所知,'target == 1'會創建一個布爾數組,但是如果這些列中沒有代表1的值,它如何返回第1列和第2列的值。

numpy索引所有列的搜索值嗎?

回答

0

假設你有一個矩陣與向量:

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

b = np.array([0, 1, 2]) 

而你做到以下幾點:

A[b==1,2] # will return 6 

這告訴蟒你想要的行索引,其中b==1(即1),你想2的列索引A

又如:

A[b==0,1] # will return 2 

同樣,在你的榜樣,你發現標值。

+0

是啊謝謝,我後來意識到我在做什麼錯誤 –