zoukankan      html  css  js  c++  java
  • 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]]
    
    
  • 相关阅读:
    hdu 3342 Legal or Not 拓排序
    hdu 1596 find the safest road Dijkstra
    hdu 1874 畅通工程续 Dijkstra
    poj 2676 sudoku dfs
    poj 2251 BFS
    poj Prime Path BFS
    poj 3278 BFS
    poj 2387 Dijkstra 模板
    poj 3083 DFS 和BFS
    poj 1062 昂贵的聘礼 dijkstra
  • 原文地址:https://www.cnblogs.com/chanyuli/p/11716984.html
Copyright © 2011-2022 走看看