zoukankan      html  css  js  c++  java
  • np.dot()、np.outer()、np.multiply()、*函数解析(最清晰的解释)

    欢迎关注WX公众号:【程序员管小亮】

    这两天在看吴恩达深度学习作业的代码时,碰到了np.dot()、np.outer()、np.multiply()、*等四个函数,特此记录。

    一、np.dot()

    1. 如果处理的是一维数组,则得到的是两数组的內积
    import numpy as np
    
    a = np.arange(0,9)
    b = a[::-1]
    np.dot(a,b)
    
    > 84
    
    1. 如果是二维数组(矩阵)之间的运算,则得到的是矩阵积
    import numpy as np
    
    a = np.arange(1,5).reshape(2,2)
    b = np.arange(5,9).reshape(2,2)
    np.dot(a,b)
    
    > array([[19, 22],
          	 [43, 50]])
    
    1. dot()函数可以通过numpy库调用,也可以由数组实例对象进行调用。a.dot(b) 与 np.dot(a,b)效果相同。

    二、np.multiply()

    np.multiply()表示的是数组和矩阵对应位置相乘,输出和输出的结果shape一致。

    1. 数组
    import numpy as np
    
    a = np.arange(0,9)
    b = a[::-1]
    np.multiply(a,b)
    
    > array([ 0,  7, 12, 15, 16, 15, 12,  7,  0])
    
    1. 矩阵
    import numpy as np
    
    a = np.arange(1,5).reshape(2,2)
    b = np.arange(0,4).reshape(2,2)
    np.multiply(a,b)
    
    > array([[0, 2],
          	 [6, 12]])
    

    三、np.outer()

    np.outer()表示的是两个向量相乘,拿第一个向量的元素分别与第二个向量所有元素相乘得到结果的一行。

    1. 数组
    import numpy as np
    
    a = np.arange(0,9)
    b = a[::-1]
    np.outer(a,b)
    
    > array([[ 0,  0,  0,  0,  0,  0,  0,  0,  0],
             [ 8,  7,  6,  5,  4,  3,  2,  1,  0],
             [16, 14, 12, 10,  8,  6,  4,  2,  0],
             [24, 21, 18, 15, 12,  9,  6,  3,  0],
             [32, 28, 24, 20, 16, 12,  8,  4,  0],
             [40, 35, 30, 25, 20, 15, 10,  5,  0],
             [48, 42, 36, 30, 24, 18, 12,  6,  0],
             [56, 49, 42, 35, 28, 21, 14,  7,  0],
             [64, 56, 48, 40, 32, 24, 16,  8,  0]])
    
    1. 矩阵
    import numpy as np
    
    a = np.arange(1,5).reshape(2,2)
    b = np.arange(0,4).reshape(2,2)
    np.outer(a,b)
    
    > array([[ 0,  1,  2,  3],
             [ 0,  2,  4,  6],
             [ 0,  3,  6,  9],
             [ 0,  4,  8, 12]])
    

    四、*

    1. 如果处理的是数组,则得到的是对应位置相乘
    import numpy as np
    
    a = np.arange(0,9)
    b = a[::-1]
    a*b
    
    > array([ 0,  7, 12, 15, 16, 15, 12,  7,  0])
    
    1. 如果处理的是矩阵,则得到的是矩阵相乘
    import numpy as np
    
    a = np.arange(1,5).reshape(2,2)
    b = np.arange(0,4).reshape(2,2)
    a*b
    
    > array([[0, 2],
             [6, 12]])
    

    python课程推荐。
    在这里插入图片描述

  • 相关阅读:
    纸牌游戏
    万圣节派对
    士兵杀敌(三)简单线段树
    百度之星2016资格赛之部分题解
    hdu Simpsons’Hidden Talents(kmp)
    滑梯理论
    PAP认证方式原理和实现
    Google的Protobuf协议分析
    HMac基本介绍
    为Tcl编写C的扩展库
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302845.html
Copyright © 2011-2022 走看看