NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。是在学习机器学习、深度学习之前应该掌握的一个非常基本且实用的Python库。
本实训将介绍NumPy的一些更高级的知识与使用方法。实训通关后你将学会NumPy的进阶使用技能,并为后续的综合练习部分打好基础。如果你对NumPy的基础知识不熟,可以看看这里。
PS:若需要更加详细的查阅NumPy所提供的接口,可以查阅官方文档。
任务描述
相关知识
numpy的线性代数
常用函数
编程要求
任务描述
本关任务:编写一个能求解线性方程的函数。
相关知识
为了完成本关任务,你需要掌握:1.如何使用numpy进行矩阵运算;2.点积和matmul的区别。
numpy的线性代数
线性代数(如矩阵乘法、矩阵分解、行列式以及其他方阵数学等)是任何数组库的重要组成部分,一般我们使用*对两个二维数组相乘得到的是一个元素级的积,而不是一个矩阵点积。因此numpy提供了线性代数函数库linalg,该库包含了线性代数所需的所有功能。
常用的numpy.linalg函数:
函数 说明
dot 矩阵乘法
vdot 两个向量的点积
det 计算矩阵的行列式
inv 计算方阵的逆
svd 计算奇异值分解(SVD)
solve 解线性方程组 Ax=b,A是一个方阵
matmul 两个数组的矩阵积
常用函数
dot():该函数返回俩个数组的点积。对于二维向量,效果等于矩阵乘法;对于一维数组,它是向量的内积;对于N维数组,它是a的最后一个轴上的和与b的倒数第二个轴的乘积。
a=np.array([[1,2],[3,4]])
a1=np.array([[5,6],[7,8]])
np.dot(a,a1)
‘’’
输出:array([[19, 22],
[43, 50]])
‘’’
det():该函数用于计算输入矩阵的行列式。
a = np.array([[14, 1], [6, 2]])
a=linalg.det(a)
print(a)
‘’’
输出:21.999999999999996
‘’’
inv():该函数用于计算方阵的逆矩阵。逆矩阵的定义维如果两个方阵A、B,使得AB = BA =