美文网首页我爱编程
Numpy基础(二)

Numpy基础(二)

作者: 盗花 | 来源:发表于2017-02-24 21:56 被阅读53次

    choose函数实现条件筛选

    choose函数主要利用下标以及下标所在的位置对相关的数组进行筛选,看下面的示例:

    In [129]: control
    Out[129]: 
    array([[1, 0, 1],
           [2, 1, 0],
           [1, 2, 2]])
    
    In [130]: choose(control, [10, 11, 12]) # control中,1对应11,0对弈10,2对应12
    Out[130]: 
    array([[11, 10, 11],
           [12, 11, 10],
           [11, 12, 12]])
    --------------------------------------------------------
    In [131]: i0
    Out[131]: 
    array([[0, 1, 2],
           [3, 4, 5],
           [6, 7, 8]])
    
    In [132]: i2
    Out[132]: 
    array([[20, 21, 22],
           [23, 24, 25],
           [26, 27, 28]])
    
    In [133]: choose(control, [i0, 10, i2]) # control中,第一个元素1对应10,第二个元素[0, 1]0对应i0中的[0, 1]1,以此类推。
    Out[133]: 
    array([[10,  1, 10],
           [23, 10,  5],
           [10, 27, 28]])
    ------------------------------------------------------------
    In [135]: a = array([[0, 1, 2], [10, 11, 12], [20, 21, 22]])
    
    In [136]: a
    Out[136]: 
    array([[ 0,  1,  2],
           [10, 11, 12],
           [20, 21, 22]])
    
    In [137]: a < 10
    Out[137]: 
    array([[ True,  True,  True],
           [False, False, False],
           [False, False, False]], dtype=bool)
    
    In [138]: choose(a < 10, [a, 10]) # True可以看成是1,对应10;False看成0,对应a中相同位置的元素。
    Out[138]: 
    array([[10, 10, 10],
           [10, 11, 12],
           [20, 21, 22]])
    ------------------------------------------------------------
    # 下面的例子将数组中所有小于10的值变成了10, 大于15的值变成了15.
    In [139]: a
    Out[139]: 
    array([[ 0,  1,  2],
           [10, 11, 12],
           [20, 21, 22]])
    
    In [140]: a < 10
    Out[140]: 
    array([[ True,  True,  True],
           [False, False, False],
           [False, False, False]], dtype=bool)
    
    In [141]: a > 15
    Out[141]: 
    array([[False, False, False],
           [False, False, False],
           [ True,  True,  True]], dtype=bool)
    
    In [142]: lt = a < 10
    
    In [143]: a > 15
    Out[143]: 
    array([[False, False, False],
           [False, False, False],
           [ True,  True,  True]], dtype=bool)
    
    In [144]: gt = a > 15
    
    In [145]: gt
    Out[145]: 
    array([[False, False, False],
           [False, False, False],
           [ True,  True,  True]], dtype=bool)
    
    In [146]: 2 * gt
    Out[146]: 
    array([[0, 0, 0],
           [0, 0, 0],
           [2, 2, 2]])
    
    In [147]: gt * 2
    Out[147]: 
    array([[0, 0, 0],
           [0, 0, 0],
           [2, 2, 2]])
    
    In [148]: a
    Out[148]: 
    array([[ 0,  1,  2],
           [10, 11, 12],
           [20, 21, 22]])
    
    In [149]: lt = a < 10
    
    In [150]: lt
    Out[150]: 
    array([[ True,  True,  True],
           [False, False, False],
           [False, False, False]], dtype=bool)
    
    In [151]: gt = a > 15
    
    In [152]: gt
    Out[152]: 
    array([[False, False, False],
           [False, False, False],
           [ True,  True,  True]], dtype=bool)
    
    In [153]: choice = lt + 2 * gt
    
    In [154]: choice
    Out[154]: 
    array([[1, 1, 1],
           [0, 0, 0],
           [2, 2, 2]])
    
    In [155]: choose(choice, [a, 10, 15])
    Out[155]: 
    array([[10, 10, 10],
           [10, 11, 12],
           [15, 15, 15]])
    

    相关文章

      网友评论

        本文标题:Numpy基础(二)

        本文链接:https://www.haomeiwen.com/subject/tuxgwttx.html