NumPy numpy.dot()的使用

NumPy numpy.dot()的使用

Python的numpy模块提供了一个函数来执行两个数组的点积。

  • 如果数组’a’和’b’都是一维数组,dot()函数执行向量的内积(不进行复共轭)。
  • 如果数组’a’和’b’都是二维数组,dot()函数执行矩阵乘法。但是对于矩阵乘法,推荐使用 matmul‘a’ @ ‘b’
  • 如果’a’或’b’为0维(标量),dot()函数执行乘法。此外,推荐使用 numpy.multiply(a, b)a *b 方法。
  • 如果’a’是一个N维数组,并且’b’是一个一维数组,则dot()函数执行a和b在最后一个轴上的乘积总和。
  • 如果’a’是一个M维数组,并且’b’是一个N维数组(其中N>=2),则dot()函数执行’a’的最后一个轴和’b’的倒数第二个轴的乘积总和:
dot(a, b)[i,j,k,n] = sum(a[i,j,:] * b[k,:,n])

语法

numpy.dot(a, b, out=None)

参数

a: array_like

此参数定义第一个数组。

b: array_like

此参数定义第二个数组。

out: ndarray(可选)

它是一个输出参数。它应该具有与其未使用时返回的类型完全相同的类型。特别地,它应该满足性能特征,即它必须包含正确的类型,即它必须是C连续的,并且其dtype必须与点积(dot(a,b))返回的dtype相同。因此,如果它不满足这些指定的条件,它会引发异常。

返回值

此函数返回“a”和“b”的点积。如果“a”和“b”都是标量或一维的,则此函数返回一个标量;否则,返回一个数组。如果给出了“out”,则返回它。

异常

当“a”的最后一个维度与“b”的倒数第二个维度大小不同时,将引发 ValueError 异常。

示例1

import numpy as np
a=np.dot(6,12)
a

输出:

72

示例2

import numpy as np
a=np.dot([2j, 3j], [5j, 8j])
a

输出:

(-34+0j)

示例3

import numpy as np
a = [[1, 2], [4, 1]]
b = [[4, 11], [2, 3]]
c=np.dot(a, b)
c

输出:

array([[ 8, 17],
        [18, 47]])

在上述的代码中

  • 我们使用别名np导入了numpy库。
  • 我们创建了两个二维数组 ‘a’ 和 ‘b’。
  • 我们声明了变量 ‘c’,并将np.dot()函数的返回值赋给了它。
    最后,我们尝试打印变量 ‘c’ 的值。

输出显示矩阵乘积为一个数组。

示例4

import numpy as np
x = np.arange(3*4*5*6).reshape((3,4,5,6))
y = np.arange(3*4*5*6)[::-1].reshape((5,4,6,3))
p=np.dot(a, b)[2,3,2,1,2,2]
q=sum(a[2,3,2,:] * b[1,2,:,2])
p
q

输出:

499128
499128

在上面的代码中:

  • 我们使用别名np导入了numpy。
  • 我们使用np.arange()函数创建了两个数组’a’和’b’,并使用reshape()函数改变了这两个数组的形状。
  • 我们声明了变量’c’,并将np.dot()函数的返回值赋给了它。
  • 最后,我们尝试打印出’c’的值。

从输出来看,它将矩阵乘积显示为一个数组。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程