首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用numpy ndarray索引numpy ndarray

用numpy ndarray索引numpy ndarray
EN

Stack Overflow用户
提问于 2018-04-30 14:35:11
回答 1查看 209关注 0票数 1

我正在用虹膜数据集做一个教程。在这个过程中,我发现了一段我无法理解的代码:

它由两个ndarray组成:

iris.target_names是一个具有目标变量标签的numpy ndarray:

代码语言:javascript
复制
iris.target_names
>>> array(['setosa', 'versicolor', 'virginica'], dtype='<U10')

clf.predict(test[features])是一个有着我预测的编码数字的粗俗的ndarray:

代码语言:javascript
复制
clf.predict(test[features])
>>> array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
   1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2],
  dtype=int64)

下面的代码为我的预测创建了一个标记为ndarray的代码:

代码语言:javascript
复制
iris.target_names[clf.predict(test[features])]
>>> array(['setosa', 'setosa', 'setosa', 'setosa', 'setosa', 'setosa', 
'setosa', 'setosa', 'setosa', 'setosa', 'setosa', 'setosa', 'setosa', 
'setosa', 'setosa', 'versicolor', 'versicolor', 'versicolor', 'versicolor',  
'versicolor', 'versicolor', (...), dtype='<U10')

我想了一段时间了,但我不明白这是怎么回事。因为实际上我们用多个元素的一维数组来索引一个包含三个元素的一维数组,对吗?这怎么能起作用?

如果有人能在这个话题上给我一些提示的话,那就太好了。

谢谢,马库斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-30 14:41:43

如果我们忽略了整个机器学习方面,并将其提炼成一个简化的例子:

代码语言:javascript
复制
In[6]:
# our classes
classes=np.array(['a','b','c'])
# generate some random labels
predict= np.random.randint(0,3,10)
predict
Out[6]: array([0, 2, 1, 0, 2, 0, 1, 2, 1, 0])

现在,如果将predict数组作为classes上的掩码传递,则将0,1,2转换为数组中的序号位置:

代码语言:javascript
复制
In[7]
classes[predict]
Out[7]: 
array(['a', 'c', 'b', 'a', 'c', 'a', 'b', 'c', 'b', 'a'], 
      dtype='<U1')

当你看到这个简单的例子时,这里并没有什么神奇的事情发生。

您还可以在一个较小的数组上看到它:

代码语言:javascript
复制
In[8]:
classes[[1,0,2]]

Out[8]: 
array(['b', 'a', 'c'], 
      dtype='<U1')

因此,实际上,预测的类是按位置返回到类中的。

在这里传递的数组的长度与此无关,您所做的就是向数组提供索引值,以便创建一个新的传递长度数组,其中包含该索引处的值:

代码语言:javascript
复制
In[9]:
classes[[0,0,0,0]]

Out[9]: 
array(['a', 'a', 'a', 'a'], 
      dtype='<U1')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50102719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档