• NumPy-布尔索引


    布尔索引

    numpy.random.randn(7,4):生成一个7 * 4的随机正态分布的数据。
    
    names = np.array(['bob', 'joe','will', 'bob', 'will', 'joe', 'joe'] )
    data = np.random.randn(7,4)#生成一个七乘四的随机正态分布数组
    print(names)
    print(data)
    
    print(names == 'bob')
    
    print(data[names == 'bob'])
    #注意,布尔值数组的长度必须和数组轴索引长度一致。 当布尔值数组的长度不正确时,布尔值选择数据的方法并不会报错,因此用的时候要非常小心
    
    print('------------')
    print(data[names == 'bob', 2:]) #通过索引取值,判断完之后的值
    print('-----------')
    print(data[names == 'bob', 3])
    
    print('---------')
    print(names != 'bob')
    print("------------")
    
    # ~符号表示可以在你想要对一个通用条件进行取反时使用。
    print(data[~(names == 'bob')])
    
    print('---------------')
    
    #Python的关键字 and 和 or 队伍而直属组没有用,想要对多个布尔值条件进行联合的时候,需要用的数学操作符是 &(and)和 |(or)
    mask = (names == 'bob')|(names == 'will')
    print(mask)
    print(data[mask])
    
    
    print('------------')
    
    # 基于常识来设置布尔值数组的值也是可行的,将data中的所有的负值设置为0.
    data[data<0]=0
    print(data)
    
    print('------------')
    # 通过判断 names是否不等于 joe 来获取一个布尔值数组,再传入,然后改值。
    data[names != 'joe'] = 7
    print(data)
    
    
    ['bob' 'joe' 'will' 'bob' 'will' 'joe' 'joe']
    [[-1.32440208 -0.45427327 -1.63787067  1.80459809]
     [ 1.16594353 -0.50247966  0.6491378   1.05965126]
     [ 1.81587214 -1.24082676  0.4214128   0.27463189]
     [ 0.10547611 -1.448572    1.8764057   1.39618769]
     [ 1.03137488 -1.10790614 -0.51666423  0.38906515]
     [ 0.52641389 -0.4301804   0.03157491  0.37656666]
     [ 0.11827433  1.458692    0.42525599  0.39651743]]
    [ True False False  True False False False]
    [[-1.32440208 -0.45427327 -1.63787067  1.80459809]
     [ 0.10547611 -1.448572    1.8764057   1.39618769]]
    ------------
    [[-1.63787067  1.80459809]
     [ 1.8764057   1.39618769]]
    -----------
    [1.80459809 1.39618769]
    ---------
    [False  True  True False  True  True  True]
    ------------
    [[ 1.16594353 -0.50247966  0.6491378   1.05965126]
     [ 1.81587214 -1.24082676  0.4214128   0.27463189]
     [ 1.03137488 -1.10790614 -0.51666423  0.38906515]
     [ 0.52641389 -0.4301804   0.03157491  0.37656666]
     [ 0.11827433  1.458692    0.42525599  0.39651743]]
    ---------------
    [ True False  True  True  True False False]
    [[-1.32440208 -0.45427327 -1.63787067  1.80459809]
     [ 1.81587214 -1.24082676  0.4214128   0.27463189]
     [ 0.10547611 -1.448572    1.8764057   1.39618769]
     [ 1.03137488 -1.10790614 -0.51666423  0.38906515]]
    ------------
    [[0.         0.         0.         1.80459809]
     [1.16594353 0.         0.6491378  1.05965126]
     [1.81587214 0.         0.4214128  0.27463189]
     [0.10547611 0.         1.8764057  1.39618769]
     [1.03137488 0.         0.         0.38906515]
     [0.52641389 0.         0.03157491 0.37656666]
     [0.11827433 1.458692   0.42525599 0.39651743]]
    ------------
    [[7.         7.         7.         7.        ]
     [1.16594353 0.         0.6491378  1.05965126]
     [7.         7.         7.         7.        ]
     [7.         7.         7.         7.        ]
     [7.         7.         7.         7.        ]
     [0.52641389 0.         0.03157491 0.37656666]
     [0.11827433 1.458692   0.42525599 0.39651743]]
    
    
  • 相关阅读:
    12月上旬的一些记录
    11月底的记录
    备考 19号
    在android 中开发java.net.SocketException: socket failed: EACCES (Permission denied) 报错
    使用JAVA NIO实现的UDP client和server
    ANSI X9.8标准 PIN xor PAN获取PIN BlOCK
    直接拿来用!最火的iOS开源项目(一)
    Anroid ListView分组和悬浮Header实现
    Android 联网监控抓包工具的制作(tcpdump的使用)
    Android tcpdump抓包应用实现
  • 原文地址:https://www.cnblogs.com/chanyuli/p/11716984.html
Copyright © 2020-2023  润新知