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课程推荐。
    在这里插入图片描述

  • 相关阅读:
    设计模式——原型链模式之在原型上设置属性
    设计模式——原型链模式
    设计模式——构造函数模式
    设计模式——工厂模式
    设计模式——单例模式
    为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?(转载)
    Unity3d中设置UISprite图片灰显方法
    游戏后端主程工作内容及游戏项目中的注意事项及游戏项目中注意事项<转载>
    xcode使用
    ios学习笔记2
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302845.html
Copyright © 2011-2022 走看看