import numpy as np
#布尔型索引
names = np.array(['Bob','Joe','Will','Bob','Will','Joe','Joe'])
dataSet= np.array([1,1,1,1,1,1,1])
data = np.random.randn(7,4)#生成7行四列的正态分布的随机数
print data
# print names == 'Bob'#产生一个布尔型数组,其中这个布尔型数组可以进行索引
#布尔型数组的长度必须跟被索引轴的长度一样
print "names为Bob的索引值"
print data[names == 'Bob']
#此外布尔型数组还可以跟切片,整数混合使用
print "混合使用"
print data[names == 'Bob',2:]
print data[names == 'Bob',3]
#选择除‘Bob’以外的其他值,既可以使用不等于(!=), 也可以使用(-)对条件进行否定
print names != 'Bob'
print data[-(names == 'Bob')]
#选取这三个名字中的两个需要组合应用多个布尔条件,使用&(和)、|(或)之类的布尔条件即可
#通过布尔型索引取的数据,将总是创建数据的副本,即使返回结果一模一样的数组也是rci、
#Python 关键字and or 在布尔型数组中无效
mask = (names == 'Bob') | (names == 'Will')
print mask
print data[mask]
#通过布尔型数组设置值是一种常用的手段,为了将data中所有负值都设为0,我们只需要
data[data<0] = 0
print data
#通过一维布尔数组设置整行或列的值也很简单
data[names != 'Joe'] = 7
print data
Numpy 布尔索引
最新推荐文章于 2023-02-15 20:15:02 发布