布尔型索引

使用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

results matching ""

    No results matching ""