NumPy之矩阵、向量、线性代数等的操作

这篇具有很好参考价值的文章主要介绍了NumPy之矩阵、向量、线性代数等的操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

NumPy矩阵和向量

矩阵

在NumPy中,矩阵可以看作是一个二维数组,其中每个元素都可以通过行列坐标来定位。它表示为一个m×n的矩形网格,其中m表示矩阵的行数,n表示矩阵的列数。在计算机科学中,矩阵通常用数字或符号表示,并且可以进行加、减、乘等运算。

一个M X N的矩阵是一个由M行(row)N列(column)元素排列成的矩形阵列。矩阵里的元素可以是数字、符号或数学式。

以下是一个由 6 个数字元素构成的 2 行 3 列的矩阵:

[1 2 3]
[4 5 6]

注意:2×3矩阵即2行3列,请把左、右两边的多个[与多个]看成一个整体[]

向量

在 NumPy 中,向量是一维数组对象,其所有元素都必须具有相同的数据类型。向量可以通过创建一个一维数组来实现。

向量是一种特殊的矩阵,其中只包含一行或一列元素。向量通常用数字或符号表示,其大小表示向量包含的元素数量。

创建一个包含五个元素的向量:

import numpy as np

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

创建向量

import numpy as np

# 创建一维数组
v = np.array([1, 2, 3])

print(v)  # 输出:[1 2 3]

创建矩阵

import numpy as np

# 创建二维数组
m = np.array([[1, 2, 3], [4, 5, 6]])

print(m)  # 输出:[[1 2 3]
          #      [4 5 6]]

访问元素

import numpy as np

# 创建一维数组
v = np.array([1, 2, 3])

# 访问元素
print(v[0])  # 输出:1
print(v[1])  # 输出:2
print(v[2])  # 输出:3

转置矩阵

NumPy中除了可以使用numpy.transpose 函数来对换数组的维度,还可以使用 T 属性。

例如有个 m 行 n 列的矩阵,使用 t() 函数就能转换为 n 行 m 列的矩阵。

import numpy as np

# 创建矩阵
A = np.array([[1, 2], [3, 4]])

# 转置矩阵
AT = np.transpose(A)

print(AT)  # 输出:[[1 3]
           #      [2 4]]
           
print (A.T)           

矩阵加减乘除

# 矩阵加法
np.add(A, B)

# 矩阵减法
np.subtract(A, B)

# 矩阵乘法
# 在进行矩阵乘法时,前一个矩阵的列数必须等于后一个矩阵的行数,才能进行乘法运算
# (M行, N列)*(N行, L列) = (M行, L列)
p.dot(A, B)

# 矩阵除法
np.divide(A, B)
import numpy as np

# 创建矩阵A和B
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

print("A + B:")
print(np.add(A, B))
[1, 2]  	[5, 6]		[6, 8]
		+  			=  
[3, 4]		[7, 8]		[10, 12]


print("A - B:")
print(np.subtract(A, B))
[1, 2]  	[5, 6]		[-4, -4]
		-  			=  
[3, 4]		[7, 8]		[-4, -4]

print("A * B:")
print(np.dot(A, B))
[1, 2]  	[5, 6]		[19, 22]
		*  			=  
[3, 4]		[7, 8]		 [43, 50]

print("A / B:")
print(np.divide(A, B))
[1, 2]  	[5, 6]		[0.2,  0.33333333]
		/  			=  
[3, 4]		[7, 8]		[0.42857143, 0.5]

矩阵和矩阵(向量)相乘: (M行, N列)*(N行, L列) = (M行, L列)
NumPy之矩阵、向量、线性代数等的操作

矩阵向量乘法

m×n 的矩阵乘以 n×1 的向量,得到的是 m×1 的向量

[1, 2]  	[1]			[19]
		*  			=  
[3, 4]		[1]			 [43]

矩阵求逆

使用numpy.linalg.inv()函数进行矩阵求逆操作

import numpy as np

# 创建矩阵
matrix = np.array([[1, 2], [3, 4]])

# 求逆矩阵
result = np.linalg.inv(matrix)

print(result)

矩阵的迹

使用numpy.trace()函数可以计算矩阵的迹

import numpy as np

# 创建矩阵
matrix = np.array([[1, 2], [3, 4]])

# 计算矩阵的迹
result = np.trace(matrix)

print(result)

向量点积

使用numpy.dot()函数进行向量点积操作

import numpy as np

# 创建两个向量
vector1 = np.array([1, 2])
vector2 = np.array([3, 4])

# 向量点积
result = np.dot(vector1, vector2)

print(result)

向量范数

使用numpy.linalg.norm()函数可以计算向量的范数

import numpy as np

# 创建向量
vector = np.array([1, 2, 3])

# 计算向量的L2范数
result = np.linalg.norm(vector)

print(result)

NumPy线性代数

NumPy的线性代数模块(numpy.linalg)提供了许多矩阵运算函数,如矩阵乘法、求逆、行列式、特征值等,该库包含了线性代数所需的所有功能。

常用的 NumPy 线性代数函数:

函数 说明
np.dot(a, b): 两个数组的点积,即元素对应相乘
np.matmul(a, b) 两个数组的矩阵积
np.linalg.inv(a) 计算矩阵的逆
np.linalg.det(a) 计算矩阵的行列式
np.linalg.eig(a) 计算矩阵的特征值和特征向量
np.linalg.solve(a, b) 解线性方程组 ax=b

计算矩阵乘积

import numpy as np

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

print(np.dot(a, b))

# [[19 22]
#  [43 50]]

计算矩阵的逆

import numpy as np

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

print(np.linalg.inv(a))
# [[-2.   1. ]
#  [ 1.5 -0.5]]

解线性方程组

import numpy as np

a = np.array([[2, 3], [4, 5]])
b = np.array([5, 6])

x = np.linalg.solve(a, b)

print(x) # [-4.  5.]

解得的线性方程组如下,其解为x1=−4,x2=5
NumPy之矩阵、向量、线性代数等的操作文章来源地址https://www.toymoban.com/news/detail-433226.html

到了这里,关于NumPy之矩阵、向量、线性代数等的操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 线性代数矩阵乘法中的行向量和列向量

    在矩阵中有两个概念,行向量与列向量,这是从两个不同的角度看待矩阵的组成。这篇文章将从 行向量 和 列向量 两个角度来分解 矩阵的乘法 。 假设有两个矩阵 A 和 B 一般矩阵的乘法分解 简单的理解就是A矩阵的第一行与B矩阵的第一列逐元素相乘,就是 结果矩阵 的左上角

    2024年02月11日
    浏览(34)
  • 线性代数拾遗(6)—— 向量空间投影与投影矩阵

    参考:麻省理工线性代数 阅读本文前请先了解矩阵四个基本子空间,参考:线性代数拾遗(5) —— 矩阵的四个基本子空间 考察二维平面投影,如下将向量 b pmb{b} b 投影到向量 a pmb{a} a 方向,得到 a pmb{a} a 的子空间中的向量 p pmb{p} p ,假设是 a pmb{a} a 的 x x x 倍 如图可见

    2024年02月07日
    浏览(39)
  • 线性代数|证明:矩阵不同特征值对应的特征向量线性无关

    定理 1 设 λ 1 , λ 2 , ⋯   , λ m lambda_1,lambda_2,cdots,lambda_m λ 1 ​ , λ 2 ​ , ⋯ , λ m ​ 是方阵 A boldsymbol{A} A 的 m m m 个特征值, p 1 , p 2 , ⋯   , p m boldsymbol{p}_1,boldsymbol{p}_2,cdots,boldsymbol{p}_m p 1 ​ , p 2 ​ , ⋯ , p m ​ 依次是与之对应的特征向量,如果 λ 1 , λ 2 , ⋯   , λ

    2024年02月07日
    浏览(45)
  • 线性代数(魏福义)——第二章:矩阵及其向量特征

    矩阵 是一个 矩形数表 ,它是研究线性方程组、向量及其变换的重要工具 在数学中,矩阵是一个按照长方形排列的复数或实数集合,它是将一组 有序的数据 视为“ 整体量 ”进行 表述 和 运算 ,从而使问题的表述更加简洁。 2.1.1 矩阵 由 m × n 个数aij排成的 m行n列 的 数表

    2024年02月04日
    浏览(34)
  • 线性代数的学习和整理13: 函数与向量/矩阵

    目录 1 函数与 向量/矩阵 2 初等数学的函数 2.1 函数 2.2 函数的定义:定义域  →映射→  值域 3  高等数学里的函数:定义域和陪域/到达域(非值域)的映射关系 3.1 函数 3.2 单射,满射,双射等都是针对定义域 和 陪域的 3.3 易错地方:值域较小且是被决定的 3.4 单射,满射,

    2024年02月11日
    浏览(50)
  • 机器学习——线性代数中矩阵和向量的基本介绍

    矩阵的基本概念(这里不多说,应该都知道) 而向量就是一个特殊的矩阵,即向量只有一列,是个n*1的矩阵 注 :一般矩阵用大写字母表示,向量用小写字母表示 先从简单开始,即一个矩阵和一个向量相乘的运算 矩阵相乘的结果的维度为 m*k 矩阵乘法满足结合律不满足交换律

    2024年02月21日
    浏览(35)
  • 线性代数(五) | 矩阵对角化 特征值 特征向量

    矩阵实际上是一种变换,是一种旋转伸缩变换(方阵) 不是方阵的话还有可能是一种升维和降维的变换 直观理解可以看系列超赞视频线性代数-哔哩哔哩_Bilibili 比如A= ( 1 2 2 1 ) begin{pmatrix}12\\\\21end{pmatrix} ( 1 2 ​ 2 1 ​ ) x= ( 1 2 ) begin{pmatrix}1\\\\2end{pmatrix} ( 1 2 ​ ) 我们给x左乘A实际

    2024年02月04日
    浏览(49)
  • 线性代数中矩阵的特征值与特征向量

    作者:禅与计算机程序设计艺术 在线性代数中,如果一个$ntimes n$的方阵$A$满足如下两个条件之一: $A$存在实数特征值,即$exists xneq 0:Ax=kx$,其中$kin mathbb{R}$; $lambda_{max}(A)neq 0$($lambda_{max}(A)$表示$A$的最大特征值),且$||x_{lambda_{max}(A)}||=sqrt{frac{lambda_{max}(A)}{lambda_{

    2024年02月08日
    浏览(40)
  • 线性代数(8):特征值、特征向量和相似矩阵

            有矩阵 A 为 n 阶矩阵,Ax = λx ( λ 为一个实数,x为 n 维非零列向量 ),则称 λ 为方阵 A 的特征值, x 为特征向量; 1.2.1 公式         求特征值:使 | A - λE | = 0,其解的 λ 值即为矩阵 A 的特征值;         求特征向量: 使 ( A - λE )x = 0,设 x 为与 A 具有

    2024年02月11日
    浏览(40)
  • 线性代数的学习和整理6:如何表示向量/矩阵? 矩阵就是向量组,矩阵的本质是什么?

    目录 0 参考的知识点和目录 1 向量 1.1 向量的概念 1.2 向量如何表示 1.3 向量/矩阵的优秀表示方法:即向量空间内的有向线段 2 矩阵 2.1 矩阵就是多个列向量的集合/合并( 而不是 +),矩阵就是多个列向量的一种简化书写方式? 2.2 矩阵的加法  =等价于=  向量的加法 2.3 矩阵

    2024年02月07日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包