布尔型索引
使用numpy.random中的randn函数生成一些正态分布的随机数据
names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
data = randn(7, 4)
假设每个名字对应data数组中一行,选出对应名字为“Bob”的所有行
data[names == 'Bob']
将布尔型数组用于数组索引,且布尔型数组长度与被索引的轴长一致。此外还可以将布尔型数组与切片、整数混合使用
data[names == 'Bob', 2:]
data[names == 'Bob', 3]
选择除Bob之外的其他值,可以使用!=,或者是-
names != 'Bob'
data[-(names == 'Bob')]
多个布尔条件
选取三个名字中的两个,应用多个布尔条件,可以使用&、|等布尔算术运算符
python的关键字and和or在布尔型数组中无效。
mask = (names == 'Bob') | (names == 'Will')
data[mask]
通过布尔型索引选区数组中的数据,将总是创建数据的副本。
通过布尔型数组设置值
将data中所有负值都设置为0
data[data < 0] = 0
通过一维布尔型数组设置整行或列的值
data[names !='joe']=7