Python : numpy布尔型索引

    xiaoxiao2022-07-03  131

    “”" 布尔型索引 通过布尔型索引选取数组中的数据,将总是创建数据的副本,即使返回一模一样的数组也是如此 “”" 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)

    最新回复(0)