Numpy中涉及两个数组的布尔索引
我在读一本关于Python数据分析的书,书中有一个关于布尔索引的主题 这是书中给出的代码:Numpy中涉及两个数组的布尔索引,numpy,Numpy,我在读一本关于Python数据分析的书,书中有一个关于布尔索引的主题 这是书中给出的代码: >>> 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',
>>> 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])
这是怎么发生的?
data[names=='Bob']
同:
数据[[True,False,False,True,False,False]]
这意味着从数据中获取第0行和第4行
data[name=='Bob',2::
提供相同的行,但现在限制列以列2开头。逗号前表示行,逗号后表示列。data[names==“Bob']
同:
数据[[True,False,False,True,False,False]]
这意味着从数据中获取第0行和第4行
data[name=='Bob',2::
提供相同的行,但现在限制列以列2开头。逗号前表示行,逗号后表示列。您阅读并理解了吗?名称=='Bob'
索引相当于使用列表(或数组)进行索引,例如[0,3]
。所以它选择第0行和第3行。第二个版本选择了第2列和下面的列。您阅读并理解了吗?names=='Bob'
索引相当于使用列表(或数组)进行索引,例如[0,3]
。所以它选择第0行和第3行。第二个版本选择了第2列和下面的列。这回答了你的问题吗?这回答了你的问题吗?
>>> 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]])