NumPy 教程 之 NumPy 线性代数 7

简介: NumPy 的 `linalg` 库提供了丰富的线性代数功能,如点积、矩阵乘法、求解线性方程等。`numpy.linalg.inv()` 用于计算矩阵的乘法逆矩阵,即找到满足 `AB=BA=E` 的矩阵 `B`,其中 `E` 是单位矩阵。示例展示了如何对矩阵 `A` 计算其逆矩阵 `A^(-1)` 并求解线性方程 `A^(-1)B`,得到向量 `[5, 3, -2]` 作为解。

NumPy 教程 之 NumPy 线性代数 7

NumPy 线性代数

NumPy 提供了线性代数函数库 linalg,该库包含了线性代数所需的所有功能,可以看看下面的说明:

函数 描述
dot 两个数组的点积,即元素对应相乘。
vdot 两个向量的点积
inner 两个数组的内积
matmul 两个数组的矩阵积
determinant 数组的行列式
solve 求解线性矩阵方程
inv 计算矩阵的乘法逆矩阵

numpy.linalg.inv()

numpy.linalg.inv() 函数计算矩阵的乘法逆矩阵。

逆矩阵(inverse matrix):设A是数域上的一个n阶矩阵,若在相同数域上存在另一个n阶矩阵B,使得: AB=BA=E ,则我们称B是A的逆矩阵,而A则被称为可逆矩阵。注:E为单位矩阵。

实例

import numpy as np

x = np.array([[1,2],[3,4]])
y = np.linalg.inv(x)
print (x)
print (y)
print (np.dot(x,y))

输出结果为:

[[1 2]
[3 4]]
[[-2. 1. ]
[ 1.5 -0.5]]
[[1.0000000e+00 0.0000000e+00]
[8.8817842e-16 1.0000000e+00]]

现在创建一个矩阵A的逆矩阵:

实例

import numpy as np

a = np.array([[1,1,1],[0,2,5],[2,5,-1]])

print ('数组 a:')
print (a)
ainv = np.linalg.inv(a)

print ('a 的逆:')
print (ainv)

print ('矩阵 b:')
b = np.array([[6],[-4],[27]])
print (b)

print ('计算:A^(-1)B:')
x = np.linalg.solve(a,b)
print (x)

这就是线性方向 x = 5, y = 3, z = -2 的解

输出结果为:

数组 a:
[[ 1 1 1]
[ 0 2 5]
[ 2 5 -1]]
a 的逆:
[[ 1.28571429 -0.28571429 -0.14285714]
[-0.47619048 0.14285714 0.23809524]
[ 0.19047619 0.14285714 -0.0952381 ]]
矩阵 b:
[[ 6]
[-4]
[27]]
计算:A^(-1)B:
[[ 5.]
[ 3.]
[-2.]]

结果也可以使用以下函数获取:

x = np.dot(ainv,b)

目录
相关文章
|
2天前
|
存储 Python
NumPy 教程 之 NumPy IO 1
NumPy IO 教程介绍了如何使用 NumPy 读写文本及二进制数据。教程覆盖了 `.npy` 和 `.npz` 格式的文件操作,其中 `save()` 和 `load()` 函数用于单个数组的存取,而 `savez()` 则可以保存多个数组。文本文件处理则由 `loadtxt()` 和 `savetxt()` 完成。通过示例展示了 `numpy.save()` 函数的具体用法,并解释了其参数含义,如文件名、数组对象以及序列化选项等。
20 10
|
4天前
|
索引 Python
NumPy 教程 之 NumPy 线性代数 4
NumPy 的线性代数库 `linalg` 提供了丰富的线性代数功能,如点积(`dot`)、向量点积(`vdot`)、内积(`inner`)、矩阵积(`matmul`)、行列式(`determinant`)、求解线性方程(`solve`)和矩阵逆(`inv`)。其中,`numpy.matmul` 用于计算两个数组的矩阵乘积,支持多维数组操作。
30 11
|
6天前
|
Python
NumPy 教程 之 NumPy 矩阵库(Matrix) 8
矩阵是由行和列构成的矩形数组,其元素可以是数字、符号或表达式。教程中讲解了如何使用`numpy.matlib.rand()`创建指定大小且元素随机填充的矩阵,并演示了矩阵与ndarray之间的转换方法。此外,还介绍了如何使用T属性进行矩阵转置。示例代码展示了创建矩阵、将其转换为ndarray以及再转回矩阵的过程。
25 9
|
3天前
|
Python
NumPy 教程 之 NumPy 线性代数 6
NumPy 的 `linalg` 库提供了多种线性代数功能,如 `dot`(点积)、`vdot`(向量点积)、`inner`(内积)、`matmul`(矩阵积)、`determinant`(行列式)、`solve`(求解线性方程)和 `inv`(计算逆矩阵)。`numpy.linalg.solve()` 可用于求解线性方程组,例如将方程组 `x + y + z = 6`、`2y + 5z = -4` 和 `2x + 5y - z = 27` 转换为矩阵形式 `AX = B` 并求解。
12 4
|
5天前
|
Serverless Python
NumPy 教程 之 NumPy 线性代数 2
NumPy 的线性代数函数库 `linalg` 提供了丰富的线性代数功能,如 `dot`、`vdot`、`inner`、`matmul`、`determinant`、`solve` 和 `inv` 等。示例展示了 `numpy.vdot()` 函数计算两个数组的点积,即使参数是多维数组也会被展开进行计算。
14 6
|
1天前
|
存储 Python
NumPy 教程 之 NumPy IO 3
NumPy 支持读写文本与二进制数据,提供 `.npy` 格式保存 `ndarray`。常用函数包括:`save()`、`load()` 用于 `.npy` 文件的写入和读取;`savez()` 将多数组存为 `.npz` 格式;`savetxt()` 和 `loadtxt()` 处理 `.txt` 文件,支持自定义分隔符等选项。示例展示了如何使用 `savetxt()` 和 `loadtxt()` 进行数据存储及读取。
5 0
|
7天前
|
Python
NumPy 教程 之 NumPy 矩阵库(Matrix) 6
主要内容包括矩阵的概念、转置操作及单位矩阵生成。使用numpy.matlib提供的工具,如`numpy.matlib.identity()`可创建指定大小的单位矩阵,示例中创建了一个5x5的浮点型单位矩阵,并展示了其输出结果。
10 0
|
27天前
|
机器学习/深度学习 数据处理 计算机视觉
NumPy实践宝典:Python高手教你如何轻松玩转数据处理!
【8月更文挑战第22天】NumPy是Python科学计算的核心库,专长于大型数组与矩阵运算,并提供了丰富的数学函数。首先需安装NumPy (`pip install numpy`)。之后可通过创建数组、索引与切片、执行数学与逻辑运算、变换数组形状及类型、计算统计量和进行矩阵运算等操作来实践学习。NumPy的应用范围广泛,从基础的数据处理到图像处理都能胜任,是数据科学领域的必备工具。
43 0
|
20天前
|
存储 缓存 C语言
|
19天前
|
机器学习/深度学习 存储 算法
NumPy 与 SciPy:Python 科学计算库的比较
【8月更文挑战第30天】
47 1