美文网首页
numpy.dot(), numpy.multiply(), 乘

numpy.dot(), numpy.multiply(), 乘

作者: 默写年华Antifragile | 来源:发表于2019-01-29 20:47 被阅读0次

1. numpy.dot()

两个数组的点乘操作,即先对应位置相乘然后再相加

  • 如果 a, b 均是一维的,则就是两个向量的内积
  • 如果不都是一维的,则为矩阵乘法,第一个的行与第二个的列分别相乘求和
  • If both a and b are 1-D arrays, it is inner product of vectors (without complex conjugation).
  • If both a and b are 2-D arrays, it is matrix multiplication, but using matmul or a @ b is preferred.
  • If either a or b is 0-D (scalar), it is equivalent to multiply and using numpy.multiply(a, b) or a * b is preferred.
  • If a is an N-D array and b is a 1-D array, it is a sum product over the last axis of a and b.
  • If a is an N-D array and b is an M-D array (where M>=2), it is a sum product over the last axis of a and the second-to-last axis of b
  • e.g.
>>> import numpy as np
>>> np.dot([1,2,3],[4,5,6])
32

>>> np.dot([1,2,3],2)
array([2, 4, 6])

>>> np.dot([[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]) # 注意维度
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: shapes (2,3) and (2,3) not aligned: 3 (dim 1) != 2 (dim 0)

>>> np.dot([[1,2,3],[4,5,6]],[[1,2,3],[4,5,6],[7,8,9]])
array([[30, 36, 42],
       [66, 81, 96]])
  • 矩阵场景
    np.dot的参数是矩阵时则执行矩阵运算
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> np.dot(a,b)
32

>>> np.dot(np.mat(a), np.mat(b))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: shapes (1,3) and (1,3) not aligned: 3 (dim 1) != 1 (dim 0)

>>> np.dot(np.mat([[1,2,3],[4,5,6]]),np.mat([[1,2,3],[4,5,6],[7,8,9]]))
matrix([[30, 36, 42],
        [66, 81, 96]])

--------------------------------------------------------------------------------------------------------------------

2. 乘号 *

对数组执行对应位置相乘操作
对矩阵执行矩阵乘法操作

  • e.g.
>>> a = np.arange(1,7).reshape(2,3)
>>> a
array([[1, 2, 3],
       [4, 5, 6]])

>>> b = np.arange(0,6).reshape(2,3)
>>> b
array([[0, 1, 2],
       [3, 4, 5]])

>>> a*b
array([[ 0,  2,  6],
       [12, 20, 30]])

>>> (np.mat(a))*(np.mat(b.T)) #注意 a 的行数与 b 的列数相同
matrix([[ 8, 26],
        [17, 62]])

----------------------------------------------------------------------------------------------------------------------

3. np.multiply()

Multiply arguments element-wise.
数组和矩阵对应位置相乘,输出与相乘数组/矩阵的大小一致

>>> np.multiply(a,a)
array([[ 1,  4,  9],
       [16, 25, 36]])
>>> np.multiply(np.mat(a),np.mat(a))
matrix([[ 1,  4,  9],
        [16, 25, 36]])

相关文章

  • numpy.dot(), numpy.multiply(), 乘

    1. numpy.dot() 两个数组的点乘操作,即先对应位置相乘然后再相加 如果 a, b 均是一维的,则就是两...

  • 在RK3399上使用openCL和numpy对比

    点乘的python实现 python里的点乘非常简单,通过numpy自带的运算符号numpy.dot即可实现,以下...

  • numpy.dot

    numpy.dot numpy.dot(a, b, out=None) 两个数组的点积来源(http://docs...

  • numpy.dot()

    numpy.dot(a,b,out=None)一般用于计算向量的点积或者叫内积,但实际上其功能不止于此 当a和b都...

  • Numpy.dot()

    numpy.dot(a, b, out=None) 两个数组的点积如果是二维数组则相当于矩阵乘积一维数组则是内积 ...

  • Numpy中常用函数

    numpy.dot(a, b, out=None) docs.scipy.org/doc/numpy/refere...

  • 对 NumPy.dot() 的理解

    【对 Numpy.dot() 的理解】 我看了一下 「使用 Python 进行科学计算:NumPy入门 」 这个教...

  • numpy中dot()、outer()、multiply()以及

    Python中的几种乘法 一、numpy.dot 在numpy的官方教程中,dot()是比较复杂的一个,因为参数的...

  • 乘加乘减

    今天听了一节乘加乘减练习课,感觉会的学生还是会,不会的学生还是不会。本来看图学生会列出加法得出答案,要求列出乘加乘...

  • 点乘/叉乘

    一 基本概念 1: 点乘,也叫向量内积、数量积。几何定义:a·b = |a||b|cosθ 2:叉乘,又称向量的外...

网友评论

      本文标题:numpy.dot(), numpy.multiply(), 乘

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