12-矩阵的运算_加减法_数乘_转置

这篇具有很好参考价值的文章主要介绍了12-矩阵的运算_加减法_数乘_转置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

矩阵的运算 加法,数乘,减法,转置

在坐标系中可以这么去理解, 相当于一个图形扩大或缩小了几倍
两个矩阵相减的转置,人工智能高等数学知识强化,矩阵,线性代数

矩阵的基本运算法则

两个矩阵相减的转置,人工智能高等数学知识强化,矩阵,线性代数

两个矩阵相减的转置,人工智能高等数学知识强化,矩阵,线性代数

矩阵的加减

矩阵的加法就是矩阵的对应位置相加,减法也是一样就是对应位置相减
两个矩阵相减的转置,人工智能高等数学知识强化,矩阵,线性代数

数乘

两个矩阵相减的转置,人工智能高等数学知识强化,矩阵,线性代数

转置

转置的操作和向量是一样的,就是把 aij 变成 aji,把行和列互换一下

对于矩阵而言, 转置其实就相当于把主对角线两侧的元素进行了调换
两个矩阵相减的转置,人工智能高等数学知识强化,矩阵,线性代数

高维数组的转置方法tranpose

numpy.transpose方法用于交换数组的维度,也就是将数组的行和列进行互换。对于二维数组来说,它实际上就是进行转置操作。

函数签名:

numpy.transpose(a, axes=None)
numpy.ndarray.transpose(axes=None)

参数:

  • numpy.ndarray:要进行转置操作的数组。
  • axes:可选参数,用于指定交换维度的顺序(索引的形式)。默认情况下,会交换所有维度。可以传入一个整数元组来指定交换的维度顺序。
    两个矩阵相减的转置,人工智能高等数学知识强化,矩阵,线性代数

返回值:

  • 返回转置后的数组。

注意事项:

  1. 如果数组是一维的,transpose方法不会对其进行转置,直接返回原数组。
  2. 如果数组是多维的,transpose方法可以根据axes参数指定的顺序对维度进行调整。

示例:

import numpy as np

# 二维数组的转置(转置相当于行列互换)
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 法一:transposed_arr = np.transpose(arr)
# 转置数组(行列互换) 
transposed_arr = arr.transpose()
print(transposed_arr)
# 输出:
# [[1 4]
#  [2 5]
#  [3 6]]

# 也可以使用T属性来进行转置
transposed_arr2 = arr.T
print(transposed_arr2)
# 输出:
# [[1 4]
#  [2 5]
#  [3 6]]

在线性代数和数组操作中,经常需要对数组的维度进行变换,numpy.transpose方法是一个非常有用的工具。它可以用于处理各种维度不一致的数组,以及进行矩阵转置等操作。

🎯实战:

# coding: utf-8

import numpy as np

# 矩阵的加减
n1 = np.arange(6).reshape(2, 3)
print('矩阵的加减演示:', n1 + n1, '\n', n1 - n1)
print('=' * 20)

# 矩阵的数乘
print(n1 * 5)
print('=' * 20)

# 矩阵的转置
print(n1.T)  # 转置
print('=' * 20)
v = np.array([1, 2, 3])
print(v.T)  # 一位数组转置后仍然显示为行向量, 但它其实已经转置了
print('=' * 20)

# 我们可以通过改变形状把它变为一个列向量  注:转置后将会变为n行一列的二维数组
print(v.reshape(-1, 1))  # -1代表会根据数组的总元素个数和其他维度的大小自动计算该维度的大小
print('=' * 20)

print(n1)
print(n1.reshape(3, 2))  # 千万要注意, 对于更高维度的数组来说不能通过reshape改变形状来达到转置的目的, 此方法仅限于一维数组(向量)
print('=' * 20)

n1 = np.arange(6).reshape(2, 3)
# 查看当前数组的形状
print('数组的形状:', n1.shape)
n2 = n1.transpose(1, 0)  # 1, 0指的是维度的索引顺序, 前一行的结果为'数组的形状: (2, 3)', 此时维度一索引为0,维度二索引为1
print(n2)
# 我们再来打印下转置后的维度
print(n2.shape)  # result:(3, 2), 可以看到维度由2行3列变成了3行2列
print('=' * 20)

temp1 = np.arange(24).reshape((2, 3, 4))  # 创建一个三维数组, 可以理解为两个三行四列的元素组成的
print(temp1)
# 进行三维数组的转置
temp2 = temp1.transpose(1, 0, 2)  # 此时的维度对应的是(3, 2, 4)
print('转置后的数组\n', temp2)
print('采用reshape直接改变形状的数组\n', temp1.reshape((3, 2, 4)))
"""
result:
可以看到高维数组已经不能简单的以改变数组的维度来去转置, 改变维度转置只限于一维数组
转置后的数组
 [[[ 0  1  2  3]
  [12 13 14 15]]

 [[ 4  5  6  7]
  [16 17 18 19]]

 [[ 8  9 10 11]
  [20 21 22 23]]]
采用reshape直接改变形状的数组
 [[[ 0  1  2  3]
  [ 4  5  6  7]]

 [[ 8  9 10 11]
  [12 13 14 15]]

 [[16 17 18 19]
  [20 21 22 23]]]"""



result:文章来源地址https://www.toymoban.com/news/detail-841405.html

矩阵的加减演示: [[ 0  2  4]
 [ 6  8 10]] 
 [[0 0 0]
 [0 0 0]]
====================
[[ 0  5 10]
 [15 20 25]]
====================
[[0 3]
 [1 4]
 [2 5]]
====================
[1 2 3]
====================
[[1]
 [2]
 [3]]
====================
[[0 1 2]
 [3 4 5]]
[[0 1]
 [2 3]
 [4 5]]
====================
数组的形状: (2, 3)
[[0 3]
 [1 4]
 [2 5]]
(3, 2)
====================
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
转置后的数组
 [[[ 0  1  2  3]
  [12 13 14 15]]

 [[ 4  5  6  7]
  [16 17 18 19]]

 [[ 8  9 10 11]
  [20 21 22 23]]]
采用reshape直接改变形状的数组
 [[[ 0  1  2  3]
  [ 4  5  6  7]]

 [[ 8  9 10 11]
  [12 13 14 15]]

 [[16 17 18 19]
  [20 21 22 23]]]

进程已结束,退出代码0

到了这里,关于12-矩阵的运算_加减法_数乘_转置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • C++基础算法①——高精度加减法计算

    当我们利用计算机进行数值计算,有时候会遇到这样的问题: n!的精确结果是多少? 当n小于30的时候,我们当然可以通过电脑自带的计算器计算出来。但是当我们遇到 100! 的时候就没有办法直接计算出精确的结果。再比如,求两个20000位的数的和。 那怎么解决精度缺失的问

    2024年02月16日
    浏览(46)
  • QT 实现自动生成小学两位数加减法算式

    可以copy到word文件,设置适当字体大小和行间距,带回家给娃做做题 界面比较简单,就不贴代码了!

    2024年01月25日
    浏览(69)
  • C语言数据结构课设:矩阵的运算(转置.求和.求差.矩阵相乘.求逆.数乘),文件读取矩阵

      #include stdio.h #include string.h #includestdlib.h #includemath.h // 定义一个结构体类型,表示一个矩阵 typedef struct matrix {     int nrow; // 矩阵的行数     int ncol; // 矩阵的列数     double data[10][10]; // 矩阵的数据,最大为 10 x 10 } matrix; // 定义一个函数,用于显示一个矩阵的内容  void dis

    2024年03月27日
    浏览(55)
  • Logisim利用先行进位加减法器设计2位数(即100以内)的BCD码的可控加/减法器

    文末附电路的资源链接 BCD码的加法:相加结果若大于9(1001),则加6校正。 BCD码的减法(补码算法): ①求减数的补码,如果是两位,则:补码 = 100 - 减数。这里的100,用2位的BCD码可以表示为9AH(1001 1010)。注:用9AH不用A0H的原因是9A作为被减数直接省去向十位借位的步骤

    2023年04月16日
    浏览(79)
  • 计算机组成原理--基于Logisim的8位可控加减法器实验的应用(超详细/设计/实验/作业/练习)

    掌握一位全加器的实现逻辑,掌握多位可控加减法电路的实现逻辑,熟悉 Logisim 平台基本功能,能在 logisim 中实现多位可控加减法电路。 1.软件:Logisim软件、JAVA环境 2.硬件:计算机Windows 10 在 Logisim 模拟器中打开 alu.circ 文件,在对应子电路中利用已经封装好的全加器设计8

    2024年02月04日
    浏览(160)
  • C++数据结构稀疏矩阵运算(含加减乘及快速转置)

    题目: 内容:稀疏矩阵运算器 要求:使用三元组顺序表存储矩阵;实现矩阵的逆置、加、减、乘运算;具有相应的报错处理。 本人采用C++来书写该数据结构的题目,有兴趣的同学可以了解一下需要掌握一定的封装的能力。 类的结果存储如下所示: 加减法的函数内容如下所

    2023年04月10日
    浏览(34)
  • 矩阵与向量的运算:矩阵的加法、数乘与乘法

    作者:禅与计算机程序设计艺术 \\\"矩阵与向量的运算\\\"是机器学习领域的一个基础课。在实际应用中,许多算法都需要涉及到矩阵运算。理解并掌握这种运算对于解决复杂的问题和优化模型性能至关重要。本文将带您快速了解矩阵的概念,以及如何进行矩阵运算。 \\\"行列式\\\"是指

    2024年02月11日
    浏览(40)
  • 稀疏矩阵(三元组)的创建,转置,遍历,加法,减法,乘法。C实现

    1.创建。 可以直接赋值字符串,但是为0的元素也要依次赋值,比较麻烦,但是容易理解也能实现。 其次也可以构思三元组赋值,只赋值非零元素和它的行,列数,在打印时进行if判断,没有赋值的就输出0,这样比较简单。 创建结构体时,一个矩阵需要有它的行总数和列总数

    2024年02月02日
    浏览(54)
  • 【C 数据结构】以三元组表形式表示稀疏矩阵,实现两个矩阵的加法、减法

    目的:以三元组表形式表示稀疏矩阵,实现两个矩阵的加法、减法。 实验步骤 1. 定义三元组存储结构 2. 输入稀疏矩阵:首先应输入矩阵的行数、列数和非零项的数目,并判别给出的两个矩阵的行、列数对于所要求进行的运算是否匹配。可设矩阵的行数和列数均不超过20。接

    2024年02月12日
    浏览(46)
  • Pytorch入门:Tensor加减乘除矩阵运算

    若张量维数大于2,则对最后两维进行matmul。进行此运算的要求是张量a与b除最后两维外的其他维必须一致:

    2024年02月12日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包