“”"
布尔型索引
通过布尔型索引选取数组中的数据,将总是创建数据的副本,即使返回一模一样的数组也是如此
“”"
import numpy as np
names = np.array([“A”,“B”,“C”,“A”])
print(names==“A”)
“”"
布尔型数组可用于数组索引
注意:布尔型数组的长度必须跟被索引的轴长度一致
“”"
arr = np.random.rand(4,3)
print(arr)
print()
print(arr[names==“A”]) # [ True False False True] 进行切片
print("*"*36)
布尔型数组跟切片、整数混合使用
print(arr[names==“A”,:2])
~ 操作符用来反转布尔条件很好用
fnames = names == “A”
print(arr[~fnames]) # ~ 反转布尔条件,即原来的 [ True False False True],变成[False True True False]
print("-"*40)
“”"
组合应用多个布尔条件,使用&(和)、|(或)的布尔算术运算符
注意:组合条件要用括号括起来
注意:Python关键字and和or在布尔型数组中无效。要使用&与|
“”"
print(arr[(names==“A”)|(names==“B”)]) # [ True True False True]
print("-"*40)
“”"
通过布尔型数组设置值
“”"
arr1 = np.array([[-2,-1,-3],[-2,0,2],[1,3,5]])
print(arr1)
arr1[arr1<0] = 0
print(arr1)
print()
tags = np.array([True,False,True])
print(arr1[tags])
print()
arr1[tags] = 0 # 满足[True,False,True],为0
print(arr1)