首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Numpy中涉及两个数组的布尔索引

Numpy中涉及两个数组的布尔索引
EN

Stack Overflow用户
提问于 2019-11-11 04:30:24
回答 1查看 43关注 0票数 0

我读了一本关于使用Python进行数据分析的书,书中有一个关于布尔索引的主题。

这是书中给出的代码:

代码语言:javascript
复制
>>> import numpy as np
>>> names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
>>> data = np.random.randn(7,4)
>>> names
array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'], dtype='<U4')
>>> data
array([[ 0.35214065, -0.6258314 , -1.18156785, -0.75981437],
       [-0.54500574, -0.21700484,  0.34375588, -0.99216205],
       [ 0.29883509, -3.08641931,  0.61289669,  0.58233649],
       [ 0.32047465,  0.05380018, -2.29797299,  0.04553794],
       [ 0.35764077, -0.51405297, -0.21406197, -0.88982479],
       [-0.59219242, -1.87402141, -2.66339726,  1.30208623],
       [ 0.32612407,  0.19612659, -0.63334406,  1.0275622 ]])
>>> names == 'Bob'
array([ True, False, False,  True, False, False, False])

在此之前,这是非常清楚的。但我不能理解当他们做数据名称== 'Bob‘

代码语言:javascript
复制
>>> data[names == 'Bob']
array([[ 0.35214065, -0.6258314 , -1.18156785, -0.75981437],
       [ 0.32047465,  0.05380018, -2.29797299,  0.04553794]])
>>> data[names == 'Bob', 2:]
array([[-1.18156785, -0.75981437],
       [-2.29797299,  0.04553794]])

这是怎么发生的?

EN

回答 1

Stack Overflow用户

发布于 2019-11-11 06:32:37

data[names == 'Bob']

与以下内容相同:

data[[True, False, False, True, False, False, False]]

这仅仅意味着从data获取行0和行4。

data[names == 'Bob',2:]

提供相同的行,但现在将列限制为从第2列开始。在逗号之前表示行,在逗号之后表示列。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58792665

复制
相关文章

相似问题

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