numpy 常用api(一)

                       

numpy 常用api(二)

numpy 常用api(三)

clip

两个版本:

  • np.clip

  • 作为成员函数,x.clip

将一序列(sequence)中所有小于零的元素置零:

>>> x = np.arange(-5, 5)>>> xarray([-5, -4, -3, -2, -101234])       
   
   
  • 1
  • 2
  • 3
  1. 法1,布尔索引

    >>> x<0array([ TrueTrueTrueTrueTrue, False, False, False, False, False], dtype=bool)>>> x[x<0] = 0>>> xarray([0, 0, 0, 0, 0, 0, 1, 2, 3, 4])
         
         
    • 1
    • 2
    • 3
    • 4
    • 5
  2. 法2:np.where(三目运算),不对原始序列进行修改

    >>> x = np.where(x<0, 0, x)array([0, 0, 0, 0, 0, 0, 1, 2, 3, 4])
         
         
    • 1
    • 2
  3. 法3:使用clip,不对原始序列进行修改

clip的第一个参数表示目标区间最小值,第二个参数表示最大值,原始序列凡小于这个最小值的被这个最小值所替换,凡大于这个最大值的被这个最大值替换,必须指定一个参数,则另一个参数默认为 的情况,在进行相加时会破坏整个内积运算的结果。

>>> 0*np.nan_to_num(np.log(0))0.0
   
   
  • 1
  • 2

我们或者:

def fn(a, y):    return -(np.dot(y.transpose(), np.nan_to_num(np.log(a)))+np.dot((1-y).transpose(), np.nan_to_num(np.log(1-a))))
   
   
  • 1
  • 2

或者:

扫描二维码关注公众号,回复: 5061795 查看本文章
def fn(a, y):    return -np.sum(np.nan_to_num(y*np.log(a)+(1-y)*np.log(1-a)))
   
   
  • 1
  • 2

np.cumsum()

np.cumsum(a)函数返回一个多维数组,其shape等于a的shape

p = np.random.random(100000)rolls = np.random.random((11, len(p)))Alice_wins = np.cumsum(rolls < p, 0)                                # 0,表示列向Bob_wins = np.cumsum(rolls >= p, 0)                                # 0,表示列向
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

首先需要说明的是,np.array() < 0,返回的是bool元素类型的多维数组。也即上述代码中的rolls < p,也即np.cumsum()的第一个参数为多维元组类型。np.cumsum(rolls < p, 0),第二个参数0表示在列的方向进行累积相加。

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

猜你喜欢

转载自blog.csdn.net/hftytf/article/details/86569398