2017-04-20 97 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

是啊谢谢,我后来意识到我在做什么错误 –