📜  Python中的 numpy.dot()(1)

📅  最后修改于: 2023-12-03 14:46:36.002000             🧑  作者: Mango

Python中的 numpy.dot()

简介

在Python中,numpy是一个非常常用的用于科学计算的库,它提供了很多对数组进行相关操作的方法。numpy.dot()就是其中之一,它用来计算数组的点积。

什么是点积

在数学上,点积也称为内积或标量积,是两个向量在进行运算时的一种方式。它是指将两个向量中对应位置上的元素相乘后再将所有的积相加得到的结果。

numpy.dot()的使用方法

numpy.dot()的使用非常简单,它有两个参数:arr1和arr2。它会返回arr1和arr2的点积。

下面是一个使用例子:

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

result = np.dot(arr1, arr2)

print(result)

运行上述代码,将会输出结果:

32

这是因为1*4 + 2*5 + 3*6等于32。

注意,当使用numpy.dot()时,两个数组的维度必须匹配。如果两个数组都是一维的,那么它们的长度必须相等。如果其中一个数组是二维的,那么它的列数必须等于另一个数组的行数。

numpy.dot()的高级用法

除了上面的基本用法之外,numpy.dot()还有很多高级用法,比如可以用来进行矩阵乘法和矩阵求逆等操作。

矩阵乘法

矩阵乘法是指两个矩阵相乘的操作。在numpy中,可以使用dot()来实现矩阵乘法。

下面是一个例子:

import numpy as np

A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

result = np.dot(A, B)

print(result)

运行上述代码,将会输出结果:

[[19 22]
 [43 50]]

这是因为矩阵乘法的计算公式为:

[1 2]   [5 6]   [1*5+2*7  1*6+2*8]   [19 22]
[3 4] * [7 8] = [3*5+4*7  3*6+4*8] = [43 50]
矩阵求逆

矩阵求逆是指给定一个矩阵A,求出另一个矩阵B,使得A和B的点积为单位矩阵。在numpy中,可以使用linalg.inv()来实现矩阵求逆。

下面是一个例子:

import numpy as np

A = np.array([[1, 2], [3, 4]])

B = np.linalg.inv(A)

print(B)

运行上述代码,将会输出结果:

[[-2.   1. ]
 [ 1.5 -0.5]]

这是因为矩阵求逆的计算公式为:

A * B = I
B = inv(A)

其中,I是单位矩阵。